虚拟环境
强烈建议大家在开发使用使用 Flask 的时候全程都在 Python 虚拟环境中进行,而不是使用全局安装。
创建项目目录,我将这个应用命名为 microblog:
$ mkdir microblog
$ cd microblog
创建虚拟环境
如果你正在使用 Python3,虚拟环境已经成为内置模块,可以直接通过如下命令来创建它:
$ python3 -m venv venv
注:第一个 venv
表示创建虚拟环境的命令,第二个 venv
为命令的参数,表示创建名为 venv
的虚拟环境,这里你也可以选择自定义的名称。
执行以上命令会在当前目录下创建一个名为 venv
的目录, Python 虚拟环境的相关文件就在其中。
microblog/
venv/
Include/
Lib/
Scripts/
pyvenv.cfg
激活虚拟环境
windows 下激活虚拟环境:
$ venv\Scripts\activate
(venv) $ _
注:激活后前面会有括号以及虚拟环境名称的标志
Linux 或 Unix 系统性激活:
$ source venv/bin/activate
(venv) $ _
激活后,你使用的 Python 就是虚拟环境中的 Python,对它的操作并不会影响到全局的 Python。
成功创建和激活了虚拟环境之后,你可以安装 Flask 了:
(venv) $ pip install flask
编写第一个应用
我们把应用放在 microblog 目录下,一个名为 app
的目录中,在 Python中,包含 __init__.py
文件的子目录会被视为一个可导入的包
当你导入一个包时,__init__.py
会执行并定义这个包暴露给外界的属性。
本项目目录结构如下:
microblog/
app/
__init__.py
routes.py
venv/
microblog.py
编写 __init__.py
:
# __init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
# 引入蓝图并注册
from app.routes import main_routes
app.register_blueprint(main_routes)
return app
上面的代码我们创造一个工厂函数 create_app()
,创建一个 app
并用 return
返回它,至于蓝图(Blueprint
)的使用,日后的文章会说明。
编写 routes.py
:
# routes.py
from flask import Blueprint
main_routes = Blueprint('main', __name__)
@main_routes.route('/')
def index():
return 'hello world!'
routes.py
应当放置视图函数,视图函数被映射到一个或多个路由 URL
,以便 Flask 知道当客户端请求给定的 URL
时执行什么逻辑。这里我们把 index()
这个视图函数用装饰器绑定到 '/'
这个 URL
规则。
为了方便把路由绑定到工厂函数,我们使用蓝图(Blueprint
)来管理。
编写 microblog.py
:
# microblog.py
from app import create_app
app = create_app()
我们在顶层目录创建一个 Flask 程序的入口,命名为:microblog.py
,内容很简单,从 app
模块中(就是定义在 __init__.py
)引入工厂函数 create_app
,并用它创建一个 app
实例。
编写好三个 Python 文件,我们第一个应用就创建好了。
运行第一个应用
要运行这个 Flask 应用请确保已经激活了刚才创建的虚拟环境 venv
。
然后通过设置 FLASK_APP
环境变量告诉 Flask 如何导入它。
windows 系统下这样操作:
(venv) $ set FLASK_APP=microblog.py
Linux 系统下这样操作:
(venv) $ export FLASK_APP=microblog.py
接下来使用 $ flask run
命令就能让第一个应用运行起来了:
(venv) $ flask run
* Serving Flask app 'microblog.py' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployme
nt.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
浏览器内打开 http://127.0.0.1:5000/,就能看到我们的 'hello world!' 页面了。
本章节源码:https://github.com/SingleDiego/Flask-Tutorial-Source-Code/tree/main
网友评论