創建一個虛擬環境bbs,並安裝flask框架
#cmd進入DOS窗口 mkvirtualenv bbs pip install flask
在本地磁盤D新建項目目錄:bbs
打開pycharm,創建flask項目
新建兩個文件,config.py( 配置文件)、exts.py(用於第三方庫)
項目分為前台(front)、后台(cms)、公共(common)
因此這里配置上面3個藍圖
新建一個python package命名為apps,在apps下新建三個python package分別命名為:cms、common、front
這3個藍圖都會有自己的數據模型和視圖,則在它們各自下新建文件models.py、views.py,前台和后台肯定會有表單驗證,因此也新建forms.py
cms.view.py
from flask import Blueprint bp = Blueprint('cms', __name__, url_prefix='/cms') @bp.route('/') def index(): return 'cms index'
common.py
from flask import Blueprint bp = Blueprint('common', __name__, url_prefix='/common') @bp.route('/') def index(): return 'common index'
front.py
from flask import Blueprint bp = Blueprint('front', __name__) #因為前台是直接訪問就不用加url_prefix @bp.route('/') def index(): return 'front index'
編輯cms.__init__.py、common.__init__.py、front.__init__.py,這樣做的好處就是可以這樣導入藍圖:from apps.cms import bp
from .views import bp
編輯bbs.py注冊藍圖,該文件不編輯任何視圖及url
from flask import Flask import config from apps.cms import bp as cms_bp from apps.common import bp as common_bp from apps.front import bp as front_bp app = Flask(__name__) app.config.from_object(config) #引入配置文件 app.register_blueprint(cms_bp) app.register_blueprint(common_bp) app.register_blueprint(front_bp) if __name__ == '__main__': app.run()
編輯config.py開啟DEBUG模式
DEBUG = True
最后啟動項目
配置數據庫信息創建數據庫
MySQL創建數據庫bbs
address: 127.0.0.1:3306
database: bbs
username: root
password: 123456
安裝相關的庫
workon bbs #進入虛擬環境 pip install pymysql pip install flask-sqlalchemy pip install flask-script pip install flask-migrate
編輯配置文件config.py配置數據庫連接信息
DEBUG = True #MySQL Database HOST = '127.0.0.1' PORT = '3306' USERNAME = 'root' PASSWORD = '123456' DATABASE = 'bbs' DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset-utf8'.format(username=USERNAME, password=PASSWORD, host=HOST, port=PORT, db=DATABASE) SQLALCHEMY_DATABASE_URI = DB_URI SQLALCHEMY_TRACK_MODIFICATIONS = False
編輯exts.py初始化SQLAlchemy
from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
創建一個manage.py用來寫遷移腳本
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from bbs import app from exts import db manager = Manager(app) Migrate(app, db) manager.add_command('db', MigrateCommand) if __name__ == '__main__': manager.run()
在主程序bbs.py給db傳入app
from exts import db ... db.init_app(app)
初始化遷移腳本
D:\bbs>workon flask-env
(flask-env) D:\bbs>python manage.py db init