下一篇 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
这样,基础的工厂环境已经能够了。