【Flask】Flask路由与请求

简介: 【Flask】Flask路由与请求

Flask路由与请求对象

什么是路由?
在web开发中,“route”是指根据url分配到对应的处理程序。

——来源知乎-贺师俊

路由注册

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)
def hello():
    return "Hello test"
app.add_url_rule(rule = "/test",view_func= hello)

蓝图:

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

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请求流程

image-20220507142118987


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

main.py

# -*- 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

# -*- 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)
相关文章
|
6月前
|
网络架构 Python
Flask的路由讲解
Flask的路由讲解
64 0
|
5月前
|
Python
Flask三种添加路由的方法
Flask 是一个流行的 Python Web 框架,它提供了多种方法来添加路由。路由是将 URL 映射到特定函数的过程,它是构建 Web 应用程序的基础。本文将介绍 Flask 中几种常用的路由添加方法,并附带代码示例。
68 3
|
5月前
|
API 网络架构 开发者
Flask Web开发基础【路由和Jinja2模板引擎】
# Flask Web开发基础 Flask是轻量级Web框架,专注于核心功能:请求响应、模板渲染和URL路由。本文档介绍了使用Flask的基础知识,包括命令行和Python两种运行模式,以及如何修改入口文件、端口和地址。此外,还讨论了URL路由的概念和其在Flask中的实现,展示了动态路由和多URL绑定的例子。最后,提到了Jinja2模板引擎,解释了其基本语法,并通过电影列表案例展示了如何结合Flask使用模板。
65 1
|
22天前
|
JSON 中间件 数据格式
五、Flask的请求和响应方法与常用技巧
五、Flask的请求和响应方法与常用技巧
55 0
|
22天前
|
中间件 网络架构 Python
三、Flask基本内容介绍之路由
三、Flask基本内容介绍之路由
20 0
|
2月前
|
Python
Flask路由
现代Web框架使用路由技术来帮助用户记住应用程序URL。 无需从主页导航即可直接访问所需页面。
35 0
|
5月前
|
JSON API 数据格式
如何使用Flask request对象处理请求
在 Flask 中,request对象是处理 HTTP 请求的重要工具之一。它提供了许多属性和方法,可以帮助我们获取请求的相关信息和数据。本文将向你介绍request对象的常用方法以及如何在 Flask 应用程序中使用它。
93 3
|
5月前
|
开发框架 开发者 Python
使用 Flask 为 Web 应用添加路由
通过学习 Flask 中的视图函数和路由规则,你可以使用 Flask 构建强大的 Web 应用程序并为其添加功能。在 Flask 中,视图函数以 Python 函数的形式定义,每个视图函数都与一个 URL 相关联。在 Flask 中,URL 处理程序被称为视图函数,它们用于响应客户端请求并返回响应。在 Flask 应用程序中,这是可选的。在这里,我们将其命名为 'hello',并将其与 URL '/hello/<name>' 绑定在一起。在上面的示例中,我们使用了默认的视图函数名称 'hello'。
48 2
|
6月前
|
网络架构 Python
在Flask中,如何定义路由并处理HTTP请求的不同方法(GET、POST等)?
【4月更文挑战第25天】在Flask中,使用`@app.route()`装饰器定义路由,如`/hello`,处理GET请求返回&#39;Hello, World!&#39;。通过添加`methods`参数,可处理不同HTTP方法,如POST请求。单一函数可处理多种方法,通过检查`request.method`区分。动态路由使用 `&lt;variable_name&gt;` 传递URL变量到视图函数。这些基础构成处理HTTP请求的Flask应用。
96 1
|
6月前
|
JSON 数据格式 Python
如何在Flask框架中定义路由和处理请求?
【4月更文挑战第18天】在Flask框架中,创建应用实例、定义路由和处理请求涉及5个步骤:1) 导入Flask并实例化应用;2) 使用`app.route()`装饰器定义路由,指定URL和HTTP方法;3) 编写视图函数处理请求逻辑;4) 视图函数返回响应内容,Flask会自动转换格式;5) 用`app.run()`启动服务器。
92 3