IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> flask(六)----动态参数及路由注册方式 -> 正文阅读

[Python知识库]flask(六)----动态参数及路由注册方式

在前后台交互时,前端需要设置name属性,后端通过name属性去获取数据,然后逻辑处理,例如:<input name='get_action>'?

1.通过<id>可动态接收参数

可指定请求参数类型:string:(不能包含/),path:可以包含/,int,float,uuid

通过uuid可生产唯一识别码

import uuid
from flask import Flask
print(uuid.uuid4())     # 6378d59d-c502-4976-a140-05c6c61c807d
app = Flask(__name__)

@app.route('/login/<int:id>')   # 通过<id>可动态接收参数,可指定请求参数类型:string:(不能包含/),path:可以包含/,int,float,uuid
                                #
def index(id):
    return id

if __name__ == '__main__':
    app.run(debug=True)

2.通过request.arges接收参数。

3.在flask中,url:/login/和/login是不一样的

路由:路由就是url和视图函数的绑定关系。

路由注册机制:

1.装饰器注册:底层也是对add_url_rule进行封装的。

app.route('/login',methods=['post','get')]

? ? ? ? app.route中可通过methods参数指定此路由可接收的请求方法,也可以限制请求方法。

from flask import Flask

app = Flask(__name__)

@app.route('/login',methods = ['post','get'])   # 可通过methods参数指定此路由可接收的请求方法,也可以限制请求方法。   #
def index():
    return 'login'

def home():
    return 'home'

# 集中注册
app.add_url_rule('/home',view_func=home)    # 当项目很大,url较多,就推荐这种集中注册机制,若是下项目,就用app.route()装饰器注册

print(app.url_map)

if __name__ == '__main__':
    app.run(debug=True)
    # 输出:
    # Map([ < Rule'/login'(GET, HEAD, OPTIONS) -> index >,< Rule'/home'(GET, HEAD, OPTIONS) -> home >,< Rule'/static/<filename>'(GET, HEAD, OPTIONS) -> static >])

2.集中注册机制:当url较多时,可用专用rul.py模块来集中注册管理url

app.add_url_rule('/login',view_func=func,methods=['post'])

? ? ? ? add_url_rule可以将参数中的路由信息注册到app核心对象中。

app.url_map:

? ? ? ? flask中触发add_url_rule后会讲路由信息加入一个类似字典的url_map对象中。

from flask import Flask

app = Flask(__name__)

@app.route('/login')   # 通过<id>可动态接收参数,可指定请求参数类型:string:(不能包含/),path:可以包含/,int,float,uuid                            #
def index():
    return 'login'

def home():
    return 'home'

# 集中注册
app.add_url_rule('/home',view_func=home)    # 当项目很大,url较多,就推荐这种集中注册机制,若是下项目,就用app.route()装饰器注册

print(app.url_map)

if __name__ == '__main__':
    app.run(debug=True)
    # 输出:
    # Map([ < Rule'/login'(GET, HEAD, OPTIONS) -> index >,< Rule'/home'(GET, HEAD, OPTIONS) -> home >,< Rule'/static/<filename>'(GET, HEAD, OPTIONS) -> static >])

3.重定向:

? ? ? ? 3.1 app.route(redirect_to='/'):不会执行app.route下面的视图函数

? ? ? ? 3.2 视图函数中return redirect('/'):会执行视图函数。

from flask import Flask
from werkzeug.utils import redirect

app = Flask(__name__)


@app.route('/login', methods=['post', 'get'], redirect_to='/house')
def index():
    return 'login'


@app.route('/house', methods=['post', 'get'])
def house():
    return 'house'


@app.route('/home', methods=['GET'], endpoint='new')
def home():
    print('触发了home')
    return redirect('/house')


if __name__ == '__main__':
    app.run(debug=True)
    

4.默认参数设置:

? ? ? ? 4.1 defaults={'id':5}

?????????4.2 视图函数中定义默认值

from flask import Flask

app = Flask(__name__)


@app.route('/login', methods=['post', 'get'])
def index(id=9):    # 视图函数中定义默认参数
    return f'{id}'


if __name__ == '__main__':
    app.run(debug=True)
# 输出:
# Map([ < Rule'/login'(GET, HEAD, OPTIONS) -> index >,< Rule'/home'(GET, HEAD, OPTIONS) -> home >,< Rule'/static/<filename>'(GET, HEAD, OPTIONS) -> static >])

5.视图函数的分离

python中解决两个模块相互导入造成的循环导入问题“:

? ? ? ? 1. 在需要的地方再导入,不用在文件一开始就导入

? ? ? ? 2.导入模块中的代码,不要只导入模块。?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 12:58:23  更:2022-03-06 12:59:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:36:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码