使用 Python 从 0 开发属于你的个人管理系统 02 篇| 这,就是 Flask 的请求交互操作

上一篇中,我们从项目虚拟环境的搭建,到服务的启动都介绍了,并且咱们也建立了一个 py 文件,把 Flask 最基本的使用方式给玩了一下,请进入你的项目,把 fxxkpython.py 文件打开:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'fxxkpython!!'

@app.route('/abc')
def abc():
    return '<h1 style="background-color:#CCBBCC;">帅帅的abc</h1>

咱们接下来继续玩——Flask 常用的请求交互操作!

接收客户端传来的参数

我们可以使用 <> 来接收 URL 传来的参数,比如你要接收客户端发来的 name,那么你在路由中就可以这样定义:

from flask import Flask
app = Flask(__name__)

@app.route('/<name>')
def hello(name):
    return f'fxxk, {name}'

这时候用户在客户端请求的 URL 是这样的:

http://127.0.0.1:5000/hansomeb

那么返回的结果就是:

fxxk, hansomeb

也就是说,当我们在路由中定义变量的时候,让 URL 以一定的规则进行请求,我们就可以得到相应的数据,这样就可以和前端做交互了。

默认情况下, Flask 获取的变量类型是 String,像我们刚刚的 name,实际上是<string:name> ,除了 string 类型,Flask 还可以接收以下的类型:


<int:xxx> 整数类型

<float:xxx> 浮点类型

<path:xxx> 包含下划线的字符串路径类型

<uuid:xxx> UUID 类型

比如你定义这样的路由:

# 接收路径类型
@app.route('/<path:subpath>')
def subpath(subpath):
    return f'得到路径:{subpath}'
                      

那么当你在浏览器访问 http://127.0.0.1:5000/111/222/33/4 ,结果就是:

得到路径:111/222/33/4

类似的, UUID:

# 接收 UUID 类型
@app.route('/uuid/<uuid:my_uuid>')
def uuid(my_uuid):
    return f'得到uuid:{my_uuid}'

那么当你在浏览器访问 http://127.0.0.1:5000/uuid/dee17400-8b02-11eb-8dcd-0242ac130003 ,结果就是:

得到uuid:dee17400-8b02-11eb-8dcd-0242ac130003

HTTP 的请求方法

HTTP 有多种请求方法,我们可以在路由中定义,什么方法接收什么样的请求,可以使用 methods 来指定,比如像一些表单的请求,我们需要指定 POST 请求,那么就可以像这样定义:

本文隐藏内容 登陆 后才可以浏览
我们通过 render_template 将变量 name 传递给 fxxk.html,这样运行起来的就是这样:

ok,本篇就介绍到这里,你赶紧试试吧,下一篇将会给你继续介绍,关于 Flask 的响应操作,比如如何写 API,重定向,404,会话等操作,我们下回见,peace!

发表回复