【Flask】路由系统

  1. 反向生成URL
@app.route('/index',methods=["GET","POST"],endpoint="n1")
def index():
    print('index')
    print(url_for('n1'))
    return "index"
  • endpoint参数默认为flask路由装饰器下面定义的函数名index,而上述代码将endpoint修改为n1因此使用url_for('n1')就可以反向生成url,打印生成结果为/index
  • methods参数若不定义,默认只能响应GET请求
  1. 动态路由
@app.route('/index/<int:nid>',methods=['GET','POST'])
def index(nid):
    print(url_for("index",nid=777))
    print(url_for("index",nid=nid))    #根据输入的nid,反向生成url
    return "Index"

浏览器输入网址,如127.0.0.1:5000/index/5即可访问该路由,同时需要注意反向生成url加参数的情况,路由中定义的nid与url_for第2个参数nid名字必须一致,若第2个参数定义为id=777,会报错

  • @app.route(’/user/’)
  • @app.route(’/post/int:post_id’)
  • @app.route(’/post/float:post_id’)
  • @app.route(’/post/path:path’)
  • @app.route(’/login’, methods=[‘GET’, ‘POST’])

常用路由系统有以上五种,所有的路由系统都是基于以下对应关系来处理:

DEFAULT_CONVERTERS = {    
'default':          UnicodeConverter,       #字符串
'string':           UnicodeConverter,       #字符串
'any':              AnyConverter,      
'path':             PathConverter,     
'int':              IntegerConverter,   
'float':            FloatConverter,   
'uuid':             UUIDConverter,
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flask是一个轻量级的Python Web框架,它基于Werkzeug和Jinja2构建而成。Flask系统架构主要包括以下几个核心组件: 1. 路由系统Flask通过路由系统来处理不同URL请求的映射关系。开发者可以使用装饰器来定义路由规则,指定URL和对应的处理函数。 2. 视图函数:视图函数是Flask中处理请求的核心部分。当匹配到对应的URL时,Flask会调用相应的视图函数来处理请求,并返回响应结果。 3. 模板引擎:Flask使用Jinja2作为默认的模板引擎,用于生成动态HTML页面。模板引擎可以将动态数据与静态模板进行结合,生成最终的HTML响应。 4. 请求-响应循环:Flask使用Werkzeug提供的请求-响应循环来处理HTTP请求和响应。在请求到达时,Flask会将请求封装成一个Request对象,并将其传递给对应的视图函数进行处理。视图函数返回的结果会被封装成一个Response对象,并发送给客户端。 5. 扩展插件:Flask提供了丰富的扩展插件,用于增强框架的功能。例如,Flask-WTF用于处理表单验证,Flask-SQLAlchemy用于数据库操作,Flask-Login用于用户认证等。 6. 上下文管理:Flask使用上下文管理来实现线程安全的请求处理。Flask提供了两种上下文:应用上下文和请求上下文。应用上下文保存了应用级别的信息,例如应用配置、数据库连接等;请求上下文保存了请求级别的信息,例如请求参数、用户信息等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值