Flask开发-留言板——包组织代码——2021.5.12
Posted Blockchain_Key
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask开发-留言板——包组织代码——2021.5.12相关的知识,希望对你有一定的参考价值。
Flask开发-留言板(1)——包组织代码
一丶程序包组件和结构
二丶配置文件(sayhello/settings.py)
import os
import sys
from sayhello import app
# SQLite URI compatible
WIN = sys.platform.startswith('win')
if WIN:
prefix = 'sqlite:///'
else:
prefix = 'sqlite:'
dev_db = prefix + os.path.join(os.path.dirname(app.root_path), 'data.db')
SECRET_KEY = os.getenv('SECRET_KEY', 'secret string')
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URI', dev_db)
os.path.dirname(app.root_path)获取上层目录
app.root_path属性存储程序实例所在的路劲
数据库URL和密钥都会首先从环境变量获取
三丶创建程序实例(init.py)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# from flask_bootstrap import Bootstrap
# from flask_moment import Moment
app = Flask('sayhello')
app.config.from_pyfile('settings.py')
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
db = SQLAlchemy(app)
# bootstrap = Bootstrap(app)
# moment = Moment(app)
from sayhello import views, errors, commands
启动程序时,首先被执行的是构造文件__init__,py
但注册在程序实例上的各种处理程序(views.py errors.py)均放在其他脚本中,如果不被执行,就不会被注册在程序中,程序就无法正常运行
为了使相关模板的函数和程序实例关联起来,需要在最后一行导入相关的模块
构造函数中导入模块,不需要注明模块路劲,直接名称导入即可
四丶FLASK_APP环境变量
给.flaskenv中的环境变量重新赋值
FLASK_APP=sayhello
以上是关于Flask开发-留言板——包组织代码——2021.5.12的主要内容,如果未能解决你的问题,请参考以下文章