一般结构图
一般来说项目最基本的包括:
一、 app项目文件夹
1. 后台的数据路由管理文件夹api
这个文件夹下的文件主要是与后端进行交互的文件
init.py 定义蓝图
from flask import Blueprint
api = Blueprint('api', __name__)
text.py 将数据格式统一化,如json数据格式
是将models.py文件获得的数据转换为固定格式,以供前端请求调用
views.py
管理数据路由,为前端请求的提交与获取数据提供一个数据定位
2. 前端静态模板文件夹templates
该文件夹下主要包括前端的静态页面(包括基本的页面以及出错的页面)以及所需要的 js文件夹、css文件夹、images文件夹
3. 前端路由管理文件夹main
init.py依旧是蓝图定义
该文件夹主要是管理不同页面之间的路由跳转,以及告诉服务器渲染页面的路径。同时也为页面之间的互相跳转提供路由。比如
@main.route('/', methods=['GET', 'POST'])
def index():
return render_template('main/index.html')
@main.route('/relative', methods=['GET', 'POST'])
def relative():
return render_template('main/relative.html')
4. 用户登录与权限管理文件夹auto
这个不用多说,网站登录都需要权限的认证
5. init.py
路径为 app/init.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)
'''
这里省去了部分代码。最基本的就是上边的几条语句。
包括初始化数据库的对象,引入配置信息。
'''
from .main import main as main_blueprint
app.register_blueprint(main_blueprint, static_folder='static')
return app
6. models.py
路径为 app/models.py
主要是对数据的数据进行获取。
class User(db.Model):
__tablename__ = 'info'
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(64), index = True, unique = True)
def getInfo():
msg = User.query.filter().first()
return msg
7. config.py
配置文件,包括数据库的相关信息。
DEBUG = True
HOSTNAME = "127.0.0.1"
PORT = "3306"
DATABASE = "xxx"
USERNAME = "root"
PASSWORD = "***"
DB_URI = "mysql+mysqldb://{}:{}@{}:{}/{}?charset=utf8".format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
二、logs日志管理文件夹
管理网站日志
三、数据库迁移文件夹
所有迁移脚本都存放其中。
四、manage.py
manage.py 是网站运营的接口性文件,利用flask-script 和 flask-migrate 进行命令管理和数据库迁移管理。
from flask_script import Manager, Shell
from app import create_app,db
from flask_migrate import Migrate, MigrateCommand, upgrade
app = create_app()
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
app.run()
# manager.run()