Python flask框架怎么使用
本篇内容介绍了"Python flask框架怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
运行flask
Flask 通过依赖包 Click内置了一个CLI(Command Line Interface,命令行交互界面)系统。当我们安装Flask后,会自动添加一个flask命令脚本, 我们可以通过flask命令执行内置命令、扩展提供的命令或是我们自己定义 的命令。其中,flask run命令用来启动内置的开发服务器:
(helloflask) $ flask run * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
确保执行命令前激活了虚拟环境(pipenv shell),否则需要使用 pipenv run flask run命令启动开发服务器。后面将不再提示。
flask run命令运行的开发服务器默认会监听 http://127.0.0.1:5000/ 地址 (按Crtl+C退出),并开启多线程⽀持。当我们打开浏览器访问这个地址时,会看到⽹页上显示"Hello,flask!"
localhost与127.0.0.1
http://127.0.0.1 即 localhost ,是指向本地机的IP地址,一般用来测试。
Flask默认使用5000端口,上面的地址可以使 用http://localhost:5000/ 。
除了地址不同外, 两者没有实际区别,即域名和IP地址的映射关系。
最⼩的Flask程序
from flask import Flask # ⑴app = Flask(__name__) # ⑵@app.route('/') # ⑶def index(): # ⑷ return 'Hello flask !' # ⑸if __name__ == '__main__': app.run() # ⑹
启动服务之后,就可以在浏览器中访问了。整个请求的处理过程如下所示:
当用户在浏览器地址栏访问这个地址,在这里即 http://127.0.0.1:5000/
服务器解析请求,发现请求 URL 匹配的 URL 规则是 /,因此调用对应的处理函数 hello()
获取 hello() 函数的返回值,处理后返回给客户端(浏览器)
浏览器接受响应,将其显示在窗口上
代码逻辑
⑴ 首先我们从 flask 包导入 Flask 类
from flask import Flask # ⑴
⑵ 通过实例化这个类,创建一个程序对象 app:
app = Flask(__name__) # ⑵
⑶ 使用 app.route() 装饰器将函数绑定对应的 URL,当用户在浏览器访问这个 URL 的时候,就会触发这个函数,获取返回值,并把返回值显示到浏览器窗口。
⑷ 装饰器注册的处理函数,这个函数是处理某个请求的处理函数,Flask 官方把它叫做视图函数(view funciton)!你可以理解为 请求处理函数。
⑸ 返回响应内容
# 填入 app.route() 装饰器的第一个参数是 URL 规则字符串,这里的 / 指的是根地址。@app.route('/') # ⑶def index(): # ⑷ return 'Hello flask !' # ⑸
⑹ Flask应用程序实例的 run 方法启动 WEB 服务器
if __name__ == '__main__': app.run() # ⑹
更多的启动选项
使服务器外部可见
我们在上面启动的Web服务器默认是对外不可见的,可以在run命令后 添加--host选项将主机地址设为0.0.0.0使其对外可见:
$ flask run --host=0.0.0.0
这会让服务器监听所有外部请求。个人计算机(主机)一般没有公⽹ IP(公有地址),所以你的程序只能被局域⽹内的其他用户通过你的个人 计算机的内⽹IP(私有地址)访问,比如你的内⽹IP为192.168.191.1。当局域⽹内的其他用户访问http://192.168.191.1:5000 时,也会看到浏览器里 显示一行"Hello,Flask!"。
改变默认端口
Flask提供的Web服务器默认监听5000端口,你可以在启动时传入参数来改变它:
$ flask run --port=8000
这时服务器会监听来自8000端口的请求,程序的主页地址也相应变成 了http://localhost:8000/ 。
将参数保存到文件
执行 flask run 命令时的 host 和 port 选项也可以通过环境变量 FLASK_RUN_HOST 和 FLASK_RUN_PORT 设置。事实上,Flask内置的命令都可以使用这种模式定义默认选项值, 即"FLASK_
如果想不需要每次都指定,可以内容保存到当前目录下的 .flaskenv 或者是 .env 文件中(需要安装 python-dotenv )。
# 一些 flask 内置命令# 需要提前安装 python-dotenv FLASK_ENV=development # 设置当前开发模式FLASK_RUN_PORT = 5050 # 设置运行的端口FLASK_RUN_HOST = 0.0.0.0 # 设置监听的 ip
也可以使用 flask --help 命令查看所有可用的命令。
设置运行环境
开发环境(development enviroment)和生产环境(production enviroment)是我们后面会频繁接触到的概念。开发环境是指我们在本地 编写和测试程序时的计算机环境,而生产环境与开发环境相对,它指的是 ⽹站部署上线供用户访问时的服务器环境
根据运行环境的不同,Flask程序、扩展以及其他程序会改变相应的行 为和设置。为了区分程序运行环境,Flask提供了一个FLASK_ENV环境变 量用来设置环境,默认为 production(生产)。在开发时,我们可以将其设 为development(开发),这会开启所有⽀持开发的特性。为了方便管理, 我们将把环境变量 FLASK_ENV 的值写入 .flaskenv 文件中:
FLASK_ENV=development
现在启动程序,你会看到下面的输出提示:
(helloflask) $ flask run * Environment: development * Debug mode: on * Restarting with stat * Debugger is active! * Debugger PIN: 161-372-375 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Python Shell
有许多操作需要在Python Shell(即Python交互式解释器)里执 行。在开发Flask程序时,我们并不会直接使用python命令启动Python Shell,而是使用flask shell命令:
(helloflask) $ flask shellPython 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32App: app [development]Instance: C:\Users\Administrator\Desktop\helloflask\instance>>>
和其他 flask 命令相同,执行这个命令前我们要确保程序实例可以被正常找到。
如果代码⽚段前的提示符为三个大于号,即">>>",那么就表示这些代码需要在使用flask shell命令打开的Python Shell中执行。
使用flask shell命令打开的Python Shell自动包含程序上下文,并且已经导入了app实例:
>>> app>>> app.name'app'>>>
上下文(context)可以理解为环境。为了正常运行程序,一些操作相关的状态和数据需要被临时保存下来,这些状态和数据被统称为上下文。在Flask中,上下文有两种,分别为程序上下文和请求上下文。
"Python flask框架怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!