概述
启动开发服务器
Flask内置了一个简单的开发服务器(由依赖包Werkzeug提供),足够 在开发和测试阶段使用。
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
运行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_<COMMAND>_<OPTION>”
如果想不需要每次都指定,可以内容保存到当前目录下的 .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 shell
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
App: app [development]
Instance: C:UsersAdministratorDesktophelloflaskinstance
>>>
和其他 flask 命令相同,执行这个命令前我们要确保程序实例可以被正常找到。
在本书中,如果代码⽚段前的提示符为三个大于号,即“>>>”,那么就表示这些代码需要在使用flask shell命令打开的Python Shell中执行。
使用flask shell命令打开的Python Shell自动包含程序上下文,并且已经导入了app实例:
>>> app
<Flask 'app'>
>>> app.name
'app'
>>>
上下文(context)可以理解为环境。为了正常运行程序,一些操作相关的状态和数据需要被临时保存下来,这些状态和数据被统称为上下文。在Flask中,上下文有两种,分别为程序上下文和请求上下文,后面我们会详细了解。
最后
以上就是优美冬瓜为你收集整理的Python flask框架教学:hello flask(干货分享)启动开发服务器运行flask最⼩的Flask程序代码逻辑更多的启动选项将参数保存到文件设置运行环境Python Shell的全部内容,希望文章能够帮你解决Python flask框架教学:hello flask(干货分享)启动开发服务器运行flask最⼩的Flask程序代码逻辑更多的启动选项将参数保存到文件设置运行环境Python Shell所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复