欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

二、应用程序设置

程序员文章站 2022-07-04 23:10:35
在flaskr目录下创建__init__.py文件,它将包含应用程序工厂,还告诉python该flaskr目录应视为一个包 编写代码: 说明: SECRET_KEY保证数据安全,它设置为‘dev’在开发过程中 提供一个方便的值,但是在部署时它应该被随机值覆盖 DATABASE是sqlite数据库文件 ......

在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应用程序!

二、应用程序设置