Flask 六把刀我的博客 項目實戰-大型項目結構

下一篇 Pyenv + Pipenv + Nginx + Gunicorn + Supervisor 部署 Flask 程序html

準備靜態文件後臺管理的模板,我用的是Material Pro Admin Template 點擊這裏下載。這裏我放出基礎模板 material/pages-blank.html shell

這個就是基礎模板,你們能夠試着上面的下載來整理下。我這裏不說整理流程,大家能夠對比個人我的博客項目裏面的static與app/templates下面的模板文件作下對比就知道了。數據庫

你們看個人教程時,最好先看下官方手冊,看個幾遍,有必定基礎知識先。連接地址:教程flask

/app/config.py 配置設置 這裏對應參照官方 配置設置瀏覽器

import os

basedir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))


class Config(object):
    FLASK_WEB_NAME = '後臺管理'
    SECRET_KEY = os.environ.get('SECRET_KEY') or '!@#$%^&*12345678'

class DevelopmentConfig(Config):
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')


class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')


config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
}

配置的方法多種多樣,由你定度。如下是一些好的建議:app

定義一個對象,兩個狀態,一個是development 開發的配置,一個是production 線上環境,這裏有一些實際場景就是開發與部署會不一樣的配置,好比數據庫。frontend

/app/__init__.py 應用設置 這裏參照官方的 應用設置函數

from flask import Flask
from app.config import config
from app.admin import site
import os


def create_app(config_class=None):
    if config_class is None:
        config_class = os.getenv('FLASK_CONFIG', 'development')
    app = Flask(__name__)
    app.config.from_object(config[config_class])

    register_buleprints(app)

    return app

註冊藍本

def register_buleprints(app):
    # frontend
    app.register_blueprint(site.bp)

這裏跟官方有點差點,就是把單獨註冊藍本這一塊,用函數封裝了。這些都是爲了組織結構,要否則一大堆代碼都在create_app裏,看着也亂。ui

/app/admin/site.py 這裏參數官方的藍圖和視圖spa

from flask import Blueprint, render_template

bp = Blueprint('site', __name__)


@bp.route('/')
def index():
    return render_template('admin/site/index.html')

/run.py 開發應用入口

from app import create_app

app = create_app()

這是一個開發的入口文件,這裏東西儘可能越少越好。但也能夠放一些很好玩的東西。好比:@app.shell_context_processor 能夠查看官方

/wsgi.py 線上應用啓動入口 這裏傳入了參數,線上配置

from app import create_app

app = create_app('production')

/.env 私有環境變量

FLASK_ENV = 'development'

/.flaskenv 公共的環境變量

FLASK_APP=run.py
FLASK_ENV = 'production'

最後運行起來看下

$ pipenv run flask run
Loading .env environment variables…
 * Serving Flask app "run.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 195-312-920

打開瀏覽器:http://127.0.0.1:5000

這樣,基礎的工廠環境已經能夠了。

下一篇 六把刀我的博客Flask項目實戰-用戶模塊

相關文章
相關標籤/搜索