1. # app.py
  2. from flask import Flask
  3. app = Flask(__name__)
  4. @app.route('/')
  5. def hello():
  6. return 'Welcome to My Watchlist!'

确保 app.py 是项目根目录,flask run启动程序。

Flask 框架理解

1. app 启动

app = Flask(__name__):基于 Flask类创建一个实例,__name__是 Python 内置变量,表示当前模块(一个 Python 文件就是一个模块)。
�源码中对于name的解释::param import_name: the name of the application package
print(__name__)app,说明__name__是当前 module 的名称。

2. 视图函数和路由绑定

hello()表示视图函数,就是如何处理页面内容的函数。
@app.route('/')是绑定路由。绑定了hello()这个视图函数,在用户访问/时触发。
(/对应的是 host后的路径,完整 URL是:)http://localhost:5000/

可以直接返回HTML字符串。
image.png
image.png

3. 整个过程

整个请求的处理过程如下所示:
1.当用户在浏览器地址栏访问这个地址,在这里即 http://localhost:5000/
2.服务器解析请求,发现请求 URL 匹配的 URL 规则是 /,因此调用对应的处理函数 hello()
3.获取 hello() 函数的返回值,处理后返回给客户端(浏览器)
4.浏览器接受响应,将其显示在窗口上

4. 程序发现机制 Flask_APP

terminal直接执行flask runFlask框架如何识别你的那个文件才是你的应用入口呢?
Flask默认会假设你把应用程序的入口设置为app.py或者wsgi.py文件中。
如果找不到,则会报错如下:
image.png
自定义应用名称,需要设置系统环境变量Flask_APP告诉 FLask要启动哪个程序。export FLASK_APP=your_app_name.py

5. 开发还是生产 Flask_ENV

FLASK_ENV 用来设置程序运行的环境,默认为 production
开发时,将FLASK_ENV 设置为development开启debug mode
debug mode:

  1. 程序出错,浏览器会显示错误信息和可以 debug;
  2. 代码变动后,程序会自动重载

image.png
image.png