“ 这是 Flask 系列笔记的第一篇,此系列会从 0 到 1 逐步搭建一个以 Flask 框架为基础的后台系统,文章内容均来自 Flask 官方文档。”
这一篇开始介绍 Flask
系列笔记,这个系列笔记将和之前的 Django
笔记一样会从 Flask
的官方文档中提取一系列的知识点,整理成系列笔记。
这是 Flask 系列笔记的第一篇,本篇笔记介绍的是 Flask 项目的搭建以及配置项的导入,我们用到的 Python 的版本还是 3.8,用到的 Flask 的版本是 2.3.2。
pip3 install flask==2.3.2
接下来我们这里用 Pycharm
创建一个项目,我们命名为 flask_blog
,在其下文件夹为 app
,其下再创建一个 __init__.py
文件,当前的文件结构如下:
flask_blog
└── app
└── __init__.py
以下是我们本篇笔记目录:
-
运行 Flask -
Flask 获取配置 -
区分开发环境和生产环境变量
1、运行 Flask
在 __init__.py
中,我们写入以下代码:
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1>hello world</h1>"
return app
然后在 flask_blog/ 文件夹下执行下面的命令,运行 Flask:
flask run
看到输出下面的输出就说明项目已经启动起来了:
...
* Running on http://127.0.0.1:5000/
Press CTRL+C to quit
然后访问服务器 5000 端口就可以看到返回内容了。
在这里我们使用 @app.route()
指定路由,然后直接 return 一个 html 文本,我们在浏览器访问的时候就会自动渲染。
指定端口
不指定的话,Flask 运行自动使用 5000 端口,如果要指定其他端口,使用 –port 参数指定。
flask run --port=9898
允许其他地址访问
如果希望其他服务器访问的话,加上 --host=0.0.0.0
debug模式
如果是在开发阶段,可以加上 --debug
参数,会自动检测系统代码变化然后重启系统。
2、Flask 获取配置
Flask 获取配置信息有几种方式,一种是从文件中获取,一种是从定义好的 dict 里获取。
从文件中获取配置
从文件里获取提供了几种方式:
app.config.from_object("app.config")
app.config.from_pyfile("./config.py")
我们在 app/ 文件夹下创建了一个 config.py 文件,其内容如下:
ABC = "123"
在执行完 from_object 或者 from_pyfile 操作之后,可以通过下面的操作获取到这些配置信息:
app.config.get("ABC")
从 dict 中获取配置
除了从文件中获取,我们还可以使用 from_mapping() 函数,将需要写入的配置放到 dict 里:
app.config.from_mapping({
"ABC": "123"
})
注意:我们从文件中或者从 dict 中获取的变量名称都应该是大写的,否则系统不会读入。
3、区分开发环境和生产环境变量
在实际开发中,我们可能需要区分开发环境和生产环境,并且根据不同的环境读取不同的环境变量,就这个问题,这里提供一个方案
在 app/
文件夹下,创建一个 config/
文件夹,在 config/
文件夹下创建三个文件:config.py
,production.py
,development.py
。
config
├── config.py
├── development.py
└── production.py
config.py 的内容如下:
import os
if os.getenv("FLASK_ENV") == "production":
from .production import *
else:
from .development import *
根据当前环境设置的 FLASK_ENV
是否为 production
来判断并选择加载对应的变量文件。
在 app/__init__.py
中还是正常加载 app.config.config
即可:
app.config.from_object("app.config.config")
点个赞和在看吧👇👇👇
原文始发于微信公众号(Hunter后端):Flask笔记一之项目搭建、配置项导入
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/179058.html