
- libs——每个模块所用到的函数
- models——数据库模型
- static——静态文件
- templates——jinja2模板
- utils——小工具/第三方
- views——视图函数
- config.py——项目配置代理
- develop_config.py——项目配置
- ext——共用变量,如db
- flask_test002.py——app主文件
- manage.py——命令
- register_blueprints_list——蓝图列表,用于循环注册
config.py
from develop_config import Dev, DevConstant
config = {
"config_type": 'dev',
'dev': Dev,
'constant': DevConstant
develop_config.py
HOSTNAME = '127.0.0.1' #主机ip
PORT = '3306' #端口
DATABASE = 'flask_test3' #数据库名
USERNAME = 'user' #mysql用户名
PASSWORD = 'password' #mysql用户密码
CHARSET = 'charset=utf8' #编码
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?{}'.format(USERNAME, PASSWORD, HOSTNAME,
PORT, DATABASE, CHARSET)
class Dev(object):
"""开发环境配置参数"""
SECRET_KEY = 'aaa'
DEBUG = True
#连接数据库
SQLALCHEMY_DATABASE_URI = DB_URI
# 如果设置成True,Flask-SQLAlchemy 将会追踪对象的修改并且发送信号
SQLALCHEMY_TRACK_MODIFICATIONS = True
class DevConstant(object):
"""开发常量"""
SESSION_ID = 'session_id'
主文件 create_app
def create_app(config_type): #'dev'
app = Flask(__name__)
app.config.from_object(config[config_type]) #config['dev'] Dev
db.init_app(app)
for b in blueprints:
app.register_blueprint(b)
return app
app = create_app(config['config_type'])
manage.py
from flask_script import Manager, Command, Server
from flask_migrate import Migrate, MigrateCommand #1
from flask_test002 import app
from ext import db
from models.account.account_user_model import User
from models.admin.admin_model import AdminUser
from models.files.upload_file_model import Files
manager = Manager(app)
migrate = Migrate(app, db) #2
manager.add_command('aaa', Server(host='0.0.0.0', port=5000))
manager.add_command('db', MigrateCommand) #3
'''shell'''
def make_shell_context():
return dict(app=app,db=db,User=User,Role=Role)
manager.add_command("shell",Shell(make_context=make_shell_context))
@manager.option('-n', '--name', dest='name',help='', default='root')
@manager.option('-p', '--password', dest='password', help='', default='222')
def hello(name, password):
admin = AdminUser(username=name, password=password)
db.session.add(admin)
db.session.commit()
print name, password
if __name__ == '__main__':
manager.run()
网友评论