25、Flask實戰第25天:項目結構搭建


創建一個虛擬環境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__.pycommon.__init__.pyfront.__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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM