# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
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/
3. 整个过程
整个请求的处理过程如下所示:
1.当用户在浏览器地址栏访问这个地址,在这里即 http://localhost:5000/
2.服务器解析请求,发现请求 URL 匹配的 URL 规则是 /,因此调用对应的处理函数 hello()
3.获取 hello() 函数的返回值,处理后返回给客户端(浏览器)
4.浏览器接受响应,将其显示在窗口上
4. 程序发现机制 Flask_APP
在 terminal
直接执行flask run
,Flask
框架如何识别你的那个文件才是你的应用入口呢?Flask
默认会假设你把应用程序的入口设置为app.py
或者wsgi.py
文件中。
如果找不到,则会报错如下:
自定义应用名称,需要设置系统环境变量Flask_APP
告诉 FLask要启动哪个程序。export FLASK_APP=your_app_name.py
5. 开发还是生产 Flask_ENV
FLASK_ENV
用来设置程序运行的环境,默认为 production
。
开发时,将FLASK_ENV
设置为development
开启debug mode
。debug mode
:
- 程序出错,浏览器会显示错误信息和可以 debug;
- 代码变动后,程序会自动重载。