首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask(4)- URL 组成部分详解

Flask(4)- URL 组成部分详解

作者头像
小菠萝测试笔记
发布2021-07-14 16:40:50
6320
发布2021-07-14 16:40:50
举报

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 还有很多其他属性,后面会陆续讲到

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • URL
  • URL 组成详解
  • 在 Flask 中分析 URL 参数
    • 实际栗子
      • 浏览器访问
        • 控制台输出结果
        • 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档