在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
说明:
- __name__是当前python模块呃名称,该应用程序需要知道它的位置以设置一些路径,可以很方便的告诉它。
- instance_relative_config=True告诉应用程序配置文件相对于实例文件夹。位于flaskr软件包的外部,可以保存不应该提交给版本控制的本地数据,例如配置机密和数据库文件。
- app.config.from_mapping()设置应用程序将使用的一些默认配置
- SECRET_KEY保证数据安全,它设置为‘dev’在开发过程中 提供一个方便的值,但是在部署时它应该被随机值覆盖
- DATABASE是sqlite数据库文件将保存的路径,它在app.instance_path那里
- app.config.from_pyfile()如果 config.py存在则使用实例文件夹中的取值代替默认配置
- test_config也可以传给工厂,并代替实例配置
- 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应用程序!