一般結(jié)構(gòu)圖
一般來說項(xiàng)目最基本的包括:
一吼虎、 app項(xiàng)目文件夾
1. 后臺(tái)的數(shù)據(jù)路由管理文件夾api
這個(gè)文件夾下的文件主要是與后端進(jìn)行交互的文件
init.py 定義藍(lán)圖
from flask import Blueprint
api = Blueprint('api', __name__)
text.py 將數(shù)據(jù)格式統(tǒng)一化,如json數(shù)據(jù)格式
是將models.py文件獲得的數(shù)據(jù)轉(zhuǎn)換為固定格式,以供前端請求調(diào)用
views.py
管理數(shù)據(jù)路由席楚,為前端請求的提交與獲取數(shù)據(jù)提供一個(gè)數(shù)據(jù)定位
2. 前端靜態(tài)模板文件夾templates
該文件夾下主要包括前端的靜態(tài)頁面(包括基本的頁面以及出錯(cuò)的頁面)以及所需要的 js文件夾奸鸯、css文件夾绑嘹、images文件夾
3. 前端路由管理文件夾main
init.py依舊是藍(lán)圖定義
該文件夾主要是管理不同頁面之間的路由跳轉(zhuǎn)祠丝,以及告訴服務(wù)器渲染頁面的路徑。同時(shí)也為頁面之間的互相跳轉(zhuǎn)提供路由嘶伟。比如
@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. 用戶登錄與權(quán)限管理文件夾auto
這個(gè)不用多說怎憋,網(wǎng)站登錄都需要權(quán)限的認(rèn)證
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)
'''
這里省去了部分代碼。最基本的就是上邊的幾條語句九昧。
包括初始化數(shù)據(jù)庫的對象绊袋,引入配置信息。
'''
from .main import main as main_blueprint
app.register_blueprint(main_blueprint, static_folder='static')
return app
6. models.py
路徑為 app/models.py
主要是對數(shù)據(jù)的數(shù)據(jù)進(jìn)行獲取耽装。
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
配置文件愤炸,包括數(shù)據(jù)庫的相關(guān)信息。
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日志管理文件夾
管理網(wǎng)站日志
三规个、數(shù)據(jù)庫遷移文件夾
所有遷移腳本都存放其中。
四姓建、manage.py
manage.py 是網(wǎng)站運(yùn)營的接口性文件诞仓,利用flask-script 和 flask-migrate 進(jìn)行命令管理和數(shù)據(jù)庫遷移管理。
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()