flask初识,第七篇,flask中的路由(代码片段)

duanhaoxin duanhaoxin     2023-01-26     723

关键词:

 

Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用

@app.route("/",methods=["GET","POST"])

为什么要这么用?其中的工作原理我们知道多少?

请关注跟DragonFire学Flask 之 路由系统 ,这里有你想要的答案

 

1. @app.route() 装饰器中的参数

如果不明白装饰器 点击这里

methods : 当前 url 地址,允许访问的请求方式

@app.route("/info", methods=["GET", "POST"])
def student_info():
    stu_id = int(request.args["id"])
    return f"Hello Old boy stu_id"  # Python3.6的新特性 f"变量名"

 

endpoint : 反向url地址,默认为视图函数名 (url_for)

技术分享图片
from flask import url_for


@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
    print(url_for("r_info"))  # /info
    stu_id = int(request.args["id"])
    return f"Hello Old boy stu_id"  # Python3.6的新特性 f"变量名"
技术分享图片

 

defaults : 视图函数的参数默认值"nid":1

技术分享图片
from flask import url_for


@app.route("/info", methods=["GET", "POST"], endpoint="r_info", defaults="nid": 100)
def student_info(nid):
    print(url_for("r_info"))  # /info
    # stu_id = int(request.args["id"])
    print(nid)  # 100
    return f"Hello Old boy nid"  # Python3.6的新特性 f"变量名"
技术分享图片

 

strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/"

技术分享图片
# 访问地址 : /info 
@app.route("/info", strict_slashes=True)
def student_info():
    return "Hello Old boy info"


# 访问地址 : /infos  or  /infos/
@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"
技术分享图片

 

redirect_to : url地址重定向

技术分享图片
# 访问地址 : /info 浏览器跳转至 /infos
@app.route("/info", strict_slashes=True, redirect_to="/infos")
def student_info():
    return "Hello Old boy info"

@app.route("/infos", strict_slashes=False)
def student_infos():
    return "Hello Old boy infos"
技术分享图片

 

subdomain : 子域名前缀 subdomian="DragonFire" 这样写可以得到 DragonFire.oldboyedu.com 前提是app.config["SERVER_NAME"] = "oldboyedu.com"

技术分享图片
app.config["SERVER_NAME"] = "oldboy.com"

@app.route("/info",subdomain="DragonFire")
def student_info():
    return "Hello Old boy info"

# 访问地址为:  DragonFire.oldboy.com/info
技术分享图片

关于路由目前就说这么多,之后的课程中会有关于Flask路由系统的源码剖析,再详细说明Flask路由系统的工作原理

 

2.动态参数路由:

技术分享图片
from flask import url_for


# 访问地址 : http://127.0.0.1:5000/info/1
@app.route("/info/<int:nid>", methods=["GET", "POST"], endpoint="r_info")
def student_info(nid):
    print(url_for("r_info",nid=2))  # /info/2
    return f"Hello Old boy nid"  # Python3.6的新特性 f"变量名"
技术分享图片

<int:nid> 就是在url后定义一个参数接收

但是这种动态参数路由,在url_for的时候,一定要将动态参数名+参数值添加进去,否则会抛出参数错误的异常

 

3.路由正则:

一般不用,如果有特殊需求,不怕麻烦的话,这个东西还是挺好用的,前提是你的正则玩儿的很6

flask初识,第十篇,flask中的装饰器before_requestafter_request(代码片段)

 Flask我们已经学习很多基础知识了,现在有一个问题我们现在有一个Flask程序其中有3个路由和视图函数,如下: 简单的小程序如果登陆了,就可以访问index和home页面,如果没登录就跳转到login登录要怎么解决呢,session对,用session... 查看详情

flask初识,第九篇,flask中的蓝图(代码片段)

 蓝图,听起来就是一个很宏伟的东西在Flask中的蓝图blueprint也是非常宏伟的它的作用就是将功能与主服务分开怎么理解呢?比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客... 查看详情

flask初识,第六篇,flask中内置的session(代码片段)

 Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪1.Flask中session是需要secret_key的fromflaskimportsessionapp=Flask(__name__)app.secret_key="DragonFire"secret_key实际上是用来加密字符串的,如果在实例化的... 查看详情

初识flask(代码片段)

...7.0.0.1',4000,hello)run_simple('localhost',4000,hello)2|0二、初识flask小结:1app 查看详情

flask初识

Flask特点以及对比  Flask:轻量级,短小精悍.快,三行代码开启服务. 缺点:你们还不会,组件大部分来源第三方,flask-admin,flask-session。Flask大版本更新,组件更新速度慢.  Django特点:大而全,admin,models,Form,ModelForm,中... 查看详情

flask第六篇flask中路由系统(代码片段)

Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用@app.route("/",methods=["GET","POST"])为什么要这么用?其中的工作原理我们知道多少?请关注跟DragonFire学Flask之路由系统,这里有你想要的答案 1.@app.route()装饰器中的... 查看详情

flask初识(代码片段)

一、Flask初识1、Flask介绍Flask是一个使用Python编写的轻量级Web应用框架。其WSGI工具箱采用Werkzeug服务,模板引擎则使用Jinja2。Flask使用BSD授权。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。... 查看详情

flask中的蓝图(blueprint)(代码片段)

 蓝图1.初识Flask蓝图(BluePrint)创建一个项目然后将目录结构做成:user.py中的内容fromflaskimportBlueprint,render_template#导入Flask中的蓝图BluePrint模块#实例化一个蓝图对象users_blue=Blueprint(‘users‘,__name__,template_folder=‘user_temp‘,url_pr... 查看详情

flask框架-初识(代码片段)

什么是Flask框架Flask是一个基于Python并且依赖于Jinja2模板引擎和WerkzeugWSGI服务的一个微型框架(MicroFramework)Flask的框架模式是MTVM:Models层,模型层,负责与数据库打交道T:Templates层,模板层,处理用户显示的内容,如htmlV:Views层... 查看详情

狗书无敌,天下第一(初识flask)

  为什么选择使用flask?  和其他框架相比,Flask之所以能脱颖而出,原因在于它让开发者做主,使其能对程序具有全面的创意控制。  在Flask中,你可以自主选择程序的组件,如果找不到合适的,还可以自己开发。  Fla... 查看详情

flask初识(代码片段)

一.Python现阶段三大主流Web框架DjangoTornadoFlask对比1.Django主要特点是大而全,集成了很多组件,例如:ModelsAdminForm等等,不管你用得到用不到,反正它全都有,属于全能型框架,Django通常用于大型Web应用由于内置组件足够强大所以使用Django... 查看详情

flask中的蓝图(代码片段)

...这样的例子,但是首先我们要搞清楚什么是蓝图blueprint二.初识Flask中的蓝图(blueprint)1.创建一个项目,然后将目录结构做成:2.s_view.py文件中的内容fromflaskimportFlask,Blueprint#导入Flask中的蓝图Blueprint模块sbp=Blueprint("sbp",__name__)#实例化一个... 查看详情

flask初识

flask的初识一.flask与django的比较Django15优势:组件全-admin-ModelORM-Forms   教科书式 劣势:加载所有组件-占用资源较高 重型框架Flask3优势:轻如鸿毛扩展性极强三方组件全劣势:什么组件都没有 三方组件全-版本兼... 查看详情

flask初识,第一篇(代码片段)

 首先,要看你学没学过Django如果学过Django的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分一.Python现阶段三大主流Web框架DjangoTornadoFlask对比1.Django主要特点是大而全,集成了很多组件,例... 查看详情

Flask 中的路径路由

】Flask中的路径路由【英文标题】:PathroutinginFlask【发布时间】:2012-04-1610:47:00【问题描述】:我想在共享主机环境中运行PythonCGI。我按照Flask的示例提出了一个小应用程序,如下所示:fromflaskimportFlaskapp=Flask(__name__)@app.route("/")de... 查看详情

python轻量级web框架flask——flask路由参数/flask请求与响应/重定项/异常处理(代码片段)

...其实就是一个路径,就是@a.route(‘/template_test/’)中的’/template_test/',每一个路由对应的是唯一的一个功能,如果要实现很多个功能,就需要很多个路由methods参数就是用来设置支持GET和POST请求的下面通过“P... 查看详情

flask初识(代码片段)

python现阶段三大主流Web框架:Django,Flask,Tornado对比.1.Django主要特点是大而全,集成了很多组件,例如:models,admin,form等,不管你用得到用不到,反正它全都有,属于全能型框架.  Django通常用于大型Web应用由于内置组件足够强大所以使用Dja... 查看详情

初识flask

首先在学习flask的前提,我是使用了很久的django和tornado,现在在写总结也是本着工作后方便使用flask少点东西,对flask的介绍和优点总结     1.安装pipinstallflask或者pythonsetup.pyinstall 2.测试是否安装成功importflas... 查看详情