Flask基础

原文链接: http://chenhao.space/post/efcec196.html

将当前环境下的依赖包全导出到一个txt文件:pip freeze > requirements.txt

在另一个环境下安装这个requirement.txt: pip install -r requirement

一个基础的Flask程序

# 1.导入Flask扩展
from flask import Flask
from flask import render_template

# 2.创建Flask应用程序实例
# Flask函数接收一个参数name,它会指向程序所在的模块
app = Flask(__name__)

# 3.定义路由及视图函数
# Flask中定义路由是通过装饰器实现的
# 装饰器的作用是将路由映射到视图函数index
@app.route("/")
def index():
    return "hello flask"  # 返回的是字符串内容
    # return render_template("index.html")  # 返回的是HTML模版内容


# 4.启动程序
if __name__ == "__main__":
    # 执行了app.run(),就会将Flask程序运行在一个简易的服务器上(Flask提供的,用于测试的)
    app.run()


Flask程序运行过程

  1. 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。
  2. 此时,Web服务器会把来自客户端的所有请求都交给Flask程序实例
  3. 程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。
  4. 根据每个URL请求,找到具体的视图函数并进行调用。
    • 在Flask程序中,路由的实现一般是通过程序实例的装饰器实现。
  5. Flask调用视图函数后,可以返回两种内容:
    • 字符串内容:将视图函数的返回值作为响应的内容,返回给客户端(浏览器)
    • HTML模版内容:获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后返回响应数据给客户端(浏览器)

路由请求方式限定

下载软件: POSTMAN 它是一个http请求模拟工具。

我们用GET请求方式访问:

如果换做POST方法访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SScCziNl-1573454595657)(https://chenhao-1300052108.cos.ap-beijing.myqcloud.com/ch-Pic/Flask/Flask%E5%9F%BA%E7%A1%80/Flask%E5%9F%BA%E7%A1%80%E5%9B%BE/image-02.png)]

显示方法不允许。

那么我们就需要在methods中增加POST。

# 装饰器的作用是将路由映射到视图函数index
# 路由默认只支持GET,如果需要增加,请自行指定
@app.route("/", methods=["GET", "POST"])

然后再用POST方法请求:


路由参数处理

# 1.导入Flask扩展
from flask import Flask
from flask import render_template

# 2.创建Flask应用程序实例
# Flask函数接收一个参数name,它会指向程序所在的模块
app = Flask(__name__)

# 3.定义路由及视图函数
# Flask中定义路由是通过装饰器实现的
# 装饰器的作用是将路由映射到视图函数index
# 路由默认只支持GET,如果需要增加,请自行指定
@app.route("/", methods=["GET", "POST"])
def index():
    return "hello flask"  # 返回的是字符串内容
    # return render_template("index.html")  # 返回的是HTML模版内容


# 使用同一个视图函数,来显示不同用户的订单信息
# <>定义路由的参数(动态参数),<>内需要起一个名字
@app.route("/orders/<int:order_id>")
def get_order_id(order_id):

    # 参数类型,默认是字符串 <class 'str'>
    print(type(order_id))

    # 有的时候,需要对路由做访问优化,订单ID应该是int类型:<int:order_id>

    # 需要在视图函数的()内填入参数名,那么后面的代码才能去使用
    return "order_id %s" % order_id


# 4.启动程序
if __name__ == "__main__":
    # 执行了app.run(),就会将Flask程序运行在一个简易的服务器上(Flask提供的,用于测试的)
    app.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值