Flask(4)- URL 组成部分详解
URL
- Uniform Resource Locator 的简写,中文名叫统一资源定位符
- 用于表示服务端的各种资源,例如网页
- 下面将讲解 Flask 中如何提取组成 URL 的各个部分
URL 组成详解
一个常见的 url
https://www.cnblogs.com/poloyy/
由以下几部分组成
scheme://host:port/path?key=value
- scheme:代表的是访问的协议,一般为 http 或者 https。例如,https://www.baidu.com 的协议是 https;
- host:主机名、域名,例如,https://www.baidu.com 的 host 为 www.baidu.com;
- port:端口号,http 协议默认使用 80 端口,https 协议默认使用 443 端口。通常情况下,使用默认值,不需要显式的写明端口号,例如,https://www.baidu.com 的端口是 443。某些情况下,可以显式的写明端口号,例如,http://localhost:5000 的端口号是 5000;
- path:页面路径,例如:https://www.cnblogs.com/poloyy/的 path 是 poloyy/;
- key=value:查询字符串,例如:https://www.baidu.com/s?wd=python,查询字符串是 wd=python,查询字符串包括两部分:参数名和参数值,这个例子中,参数名是 wd,参数值是 python
在 Flask 中分析 URL 参数
- 服务端收到将客户端发送的数据后,封装形成一个请求对象,在 Flask 中,请求对象是一个模块变量 flask.request
- request 对象包含了众多的属性
- 假设 URL 等于 http://localhost/query?userId=123,则与 URL 参数相关的属性如下:
| 属性 | 说明 |
|---|---|
| url | http://localhost/query?userId=123 |
| base_url | http://localhost/query |
| host | localhost |
| host_url | http://localhost/ |
| path | /query |
| full_path | /query?userId=123 |
实际栗子
#!/usr/bin/python3
from flask import Flask
from flask import request
app = Flask(__name__) def echo(key, value):
print('%-10s = %s' % (key, value)) @app.route('/query')
def query():
echo('url', request.url)
echo('base_url', request.base_url)
echo('host', request.host)
echo('host_url', request.host_url)
echo('path', request.path)
echo('full_path', request.full_path)
print() print(request.args)
print('userId = %s' % request.args['userId'])
return 'hello' if __name__ == '__main__':
app.run(port = 80)
浏览器访问
http://127.0.0.1:5000/query?userId=123
控制台输出结果
url = http://127.0.0.1:5000/query?userId=123
base_url = http://127.0.0.1:5000/query
host = 127.0.0.1:5000
host_url = http://127.0.0.1:5000/
path = /query
full_path = /query?userId=123 ImmutableMultiDict([('userId', '123')])
userId = 123
总结

request 还有很多其他属性,后面会陆续讲到
Flask(4)- URL 组成部分详解的更多相关文章
- URL组成部分详解
URL组成部分详解 URL是Uniform Resource Locator的简写,统一资源定位符. 一个URL是由以下几部分组成的: scheme://host:port/path/?query-s ...
- NSURL组成部分详解
手思中有这么一段代码,初看下,让人摸不着头脑 //功能:UIWebView响应长按事件 -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithR ...
- mysql:JDBC url 参数详解
MySql链接url参数详解 jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]... ...
- 第五篇Django URL name 详解
Django URL name 详解 利用Django开发网站,可以设计出非常优美的url规则,如果url的匹配规则(包含正则表达式)组织得比较好,view的结构就会比较清晰,比较容易维护. Djan ...
- 输入一个url全过程详解
1. 用户在浏览器中输入url,浏览器接收到url. 2.浏览器接收到这个url之后,会根据这个url会先查看缓存,如果有缓存且没有过期的话直接提供给客户端,完成页面渲染. 3.否则浏览器就会通过DN ...
- Flask源码剖析详解
1. 前言 本文将基于flask 0.1版本(git checkout 8605cc3)来分析flask的实现,试图理清flask中的一些概念,加深读者对flask的理解,提高对flask的认识.从而 ...
- Flask框架 之 功能详解
浏览目录 配置文件 路由系统 视图 请求相关 响应 模板渲染 session 闪现 中间件 蓝图(blueprint) 特殊装饰器 配置文件 知识点 给你一个路径 “settings.Foo”,可以找 ...
- Flask框架之功能详解
1|0浏览目录 配置文件 路由系统 视图 请求相关 响应 模板渲染 session 闪现 中间件 蓝图(blueprint) 特殊装饰器 1|1配置文件 知识点 给你一个路径 "settin ...
- Django URL name详解
我们基于上一节的代码来开始这一节的内容. 上节源代码:zqxt_views(django 1.4 - django 1.10).zip [更新于 2016-09-06 00:13:23] 1. 打开 ...
随机推荐
- Java预科:DOS命令及电脑快捷键
Java预科:DOS命令及电脑快捷键 1.快捷键 常用快捷键 a/t +f4关闭窗口 cmd窗口打开快捷方式 1.开始+系统+命令提示符 2.win+r 输入cmd 3.在任意文件夹下面,按住shif ...
- P6855「EZEC-4.5」走方格 TJ
目录 前言 题意简述 法一:时间复杂度 $Θ(m2n2)$ (TLE) $Code$ 法二:正解,时间复杂度 $Θ(mn)$ $Code$ 写在最后 洛谷 前言 题目传送门 正解:动态规划 挺 dul ...
- NDIS LWF:NdisFSendNetBufferLists蓝屏(DRIVER_IRQL_NOT_EQUAL_OR_LESS)
调用NdisFSendNetBufferLists发送自定义数据包后蓝屏,蓝屏代码为DRIVER_IRQL_NOT_EQUAL_OR_LESS,如果创建的NBL都没问题,一定要确保该自定义的NBL要在 ...
- ASP.NET Corec初步使用Quartz.NET
一.什么是Quartz.NET? Quartz.NET 是一个功能齐全的开源作业调度系统,可用于从最小的应用程序到大型企业系统. Quartz.NET是纯净的,它是一个.Net程序集,是非常流行的Ja ...
- Python开发篇——基于React-Dropzone开发上传组件
这次我要讲述的是在React-Flask框架上开发上传组件的技巧.我目前主要以React开发前端,在这个过程中认识到了许多有趣的前端UI框架--React-Bootstrap.Ant Design.M ...
- Docker部署ELK之部署kibana7.6.0(2)
1. 拉取kibana镜像 sudo docker pull kibana:7.6.0 2. 输入命令构建kibana容器,关于挂载kibana配置文件的问题,也可以先构建一个容器,然后把配置文件co ...
- Grid布局如何设置动画效果
CS代码 新增 GridLengthAnimation继承自AnimationTimeline public class GridLengthAnimation : AnimationTimeline ...
- Ubuntu本地提权适配不同小版本内核(CVE-2017-16995)
朋友在执行的时候说有的会出现提权不成功,内核crash掉的现象.因为cred结构体的偏移量可能因为内核版本不同.内核编译选项不同而出现差异,作者给的exp偏移量是写死的,所以exp里面对应的偏移地址也 ...
- 一个极其朴素的目录扫描Python脚本
如果目录扫描工具被某些种类的waf拦截了,可以尝试(只是尝试,不是绝对能过)用脚本发出请求,具体功能看需求而定 原理...没啥原理,也没啥技术含量,相信大家都能看得懂的,nobody knows be ...
- 006 PCI总线的桥与配置(一)
在PCI体系结构中,含有两类桥片,一个是HOST主桥,另一个是PCI桥.在每一个PCI设备中(包括PCI桥)都含有一个配置空间.这个配置空间由HOST主桥管理,而PCI桥可以转发来自HOST主桥的配置 ...