首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Flask】Flask路由与请求

【Flask】Flask路由与请求

作者头像
半生瓜的blog
发布2023-05-13 14:03:13
发布2023-05-13 14:03:13
4810
举报
文章被收录于专栏:半生瓜のblog半生瓜のblog

Flask路由与请求对象

什么是路由? 在web开发中,“route”是指根据url分配到对应的处理程序。 ——来源知乎-贺师俊

路由注册

代码语言:javascript
复制
from flask import Flask #从flask包中引入Flask类
app = Flask(__name__)

@app.route("/")
def hello():
   return "Hello test"

@app.route("/my/<user_name>")
def my(user_name):
   return "my pages:%s"%user_name


if __name__ == "__main__":
   app.run(host = "0.0.0.0",debug=True)
代码语言:javascript
复制
def hello():
    return "Hello test"
app.add_url_rule(rule = "/test",view_func= hello)

蓝图:

可以分成两个文件,一个里面放主函数,为程序运行入口,还有flask对象注册,将蓝图注册到flask对象中,url_prefix参数可以理解为注册根目录,另一个文件中通过route装饰器来创建子目录响应。详情见获取请求对象和POST参数

代码语言:javascript
复制
from flask import Flask,Blueprint
app = Flask(__name__)

index_page = Blueprint("index_page",__name__)
@index_page.route("/")
def index_page_index():
    return "index_page"

app.register_blueprint(index_page,url_prefix = "/test")

@app.route("/")
def hello():
    return "hello test"



if __name__ == "__main__":
    app.run(host = "0.0.0.0",debug=True)

解读HTTP请求流程


获取请求对象的GET和POST参数

main.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from flask import Flask

from page1 import index_page

app = Flask( __name__ )

app.register_blueprint( index_page,url_prefix ="/test" )


if __name__ == "__main__":
    app.run( host = "0.0.0.0",debug=True )

page1.py

代码语言:javascript
复制
# -*- coding: utf-8 -*-
from flask import Flask,Blueprint,request

index_page = Blueprint( "index_page",__name__)

@index_page.route( "/" )
def index_page_index():
    return "index page1"


@index_page.route( "/me" )
def hello():
    return "hello ,I Love Imooc"


@index_page.route("/get")
def get():
   # var_a = request.args.get( "a","i love imooc" )

    req = request.values
    var_a = req["a"] if  "a" in req else 'i am test' #三元运算式

    return "request:%s,params:%s,var_a:%s"%(request.method,request.args,var_a )

# @index_page.route("/post",methods = ["POST"])
# def post():
#      var_a = request.form['a']
#      return "request:%s,params:%s,var_a:%s"%(request.method,request.form,var_a)

@index_page.route("/post",methods = [ "POST" ])
def post():
    # var_a = request.form['a'] if 'a' in request.form else ''

    # var_a = ""
    # if 'a' in request.form:
    #     var_a = request.form["a"]

    req = request.values
    var_a = req["a"] if "a" in req else 'i am test'
    return "request:%s,params:%s,var_a:%s"%( request.method,request.form,var_a )

@index_page.route("/upload",methods = ["POST"])
def upload():
    f = request.files['file'] if "file" in request.files else None
    return "request:%s,params:%s,file:%s"%( request.method,request.files,f)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flask路由与请求对象
    • 路由注册
    • 解读HTTP请求流程
    • 获取请求对象的GET和POST参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档