二、应用程序设置

时间:2023-02-21 23:50:29

在flaskr目录下创建__init__.py文件,它将包含应用程序工厂,还告诉python该flaskr目录应视为一个包

编写代码:

 1 #包含应用程序工厂,它将告诉python该flaskr目录应被视为一个包。
 2 import os
 3 from flask import Flask
 4 
 5 def create_app(test_config=None):
 6     #创建并且配置一个app
 7     app = Flask(__name__,instance_relative_config=True) #创建Flask实例。
 8     app.config.from_mapping(
 9         SECRET_KEY='dev',
10         DATABASE=os.path.join(app.instance_path,'flaskr.sqlite')
11     )
12     if test_config is None:
13         app.config.from_pyfile('config.py',silent=True)
14     else:
15         app.config.from_mapping(test_config)
16     try:
17         os.makedirs(app.instance_path)
18     except OSError:
19         pass
20     @app.route('/hello')
21     def hello():
22         return 'Hello,World!你已经迈出了一步'
23     return app

说明:

  1. __name__是当前python模块呃名称,该应用程序需要知道它的位置以设置一些路径,可以很方便的告诉它。
  2. instance_relative_config=True告诉应用程序配置文件相对于实例文件夹。位于flaskr软件包的外部,可以保存不应该提交给版本控制的本地数据,例如配置机密和数据库文件。
  3. app.config.from_mapping()设置应用程序将使用的一些默认配置
    • SECRET_KEY保证数据安全,它设置为‘dev’在开发过程中  提供一个方便的值,但是在部署时它应该被随机值覆盖
    • DATABASE是sqlite数据库文件将保存的路径,它在app.instance_path那里
  4. app.config.from_pyfile()如果 config.py存在则使用实例文件夹中的取值代替默认配置
    • test_config也可以传给工厂,并代替实例配置
  5. os.makedirs()确保app.instance存在,flask不会自动创建实例文件夹,但它需要被创建,因为你的项目在那里创建sqllite数据库文件。

运行该程序:

set FLASK_APP='flaskr'

set FLASK_ENV=development

flask run

在浏览器访问127.0.0.1:5000/hello。应该看到“Hello,World!”消息。恭喜,您现在正在运行您的Flask Web应用程序!

二、应用程序设置