python 搭建 flask 和 orator框架开发
先展示我的 项目 目录结构:
第一步 创建 requirements.txt 文件
flask==1.0.3 //写入版本
tzlocal==1.5.1
pillow==6.1.0
orator==0.9.8
validate-email==1.3
flask-paginate==0.5.3
gunicorn==19.9.0
pymysql==0.9.3
第二步运行
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
安装这上面需要的扩展包
第三步 创建 启动文件 run.py
from src import create_app
app = create_app()
if __name__ == '__main__':
app.run()
这里的create_app()自行创建的方法 里面主要配置一些文件 src 下面的__init__.py 配置文件
# coding=utf-8
from flask import Flask, url_for, redirect
from src.config.setting import Config
def create_app():
app = Flask(__name__)
app.debug = True
app.config.from_object(Config)
# app.add_template_global(lang,'lang') // 添加模版全局变量
# 钩子(中间件)
# @app.before_request
# def before_request():
# print(1)
# 蓝图(模块)
from src.module.bio import bp_bio
app.register_blueprint(bp_bio, url_prefix="/bio")
# index
@app.route('/')
def system_index():
return redirect(url_for("bio.index_index")) #声明根目录 这里的url_for 不需要写 路由名称 需要写方法名
return app
src下面的config下面主要写配置文件
#数据库配置文件
class Config:
# 密匙
SECRET_KEY = '123'
# 环境 development, production
ENV = 'development'
# 调试模式
DEBUG = True
# orator 数据库配置
ORATOR_DATABASES = {
'default': 'mysql',
'mysql': {
'driver': 'mysql',
'host': '127.0.0.1',
'database': 'member',
'user': 'root',
'password': '123123',
'prefix': ''
}
}
# 超级管理员
SYS_SUPERS = [1]
创建数据库配置 #模型层 都需要引入 这个数据库配置
from flask import current_app
from orator import DatabaseManager
class Database:
@staticmethod
def db():
return DatabaseManager(current_app.config['ORATOR_DATABASES'])
模型层代码
先创建 base模型
from src.config.database import Database
class Base:
db = None
def __init__(self):
self.db = Database.db()
之后每个模型类继承当前的base模型类
接下来一步 就是创建 服务层
from src.model.member import Member as MemberModel
class MemberService:
@staticmethod
def get_list():
return MemberModel().get_member_list()
不需要任何处理 直接调用就好
接下来一步就是创建 控制器 这个 就是比较重要的一步
先在 bio下面的__init__.py注册 蓝图控制器
from flask import Blueprint
bp_bio = Blueprint("bio", __name__)
import src.module.bio.controller
在 src.moudle.bio.controller下面的__init__.py中 声明 你要 注册的 controller
import src.module.bio.controller.index #引入一下就可以了
接下来 在 index.py写代码 就好了 也不需要创建class类
from flask import render_template
from src.service.member import MemberService
from src.module.bio import bp_bio
@bp_bio.route('/index', methods=['GET']) #声明路由
def index_index():
member_list = MemberService().get_list()
print(member_list)
return render_template('bio/index.html')
大概就搭建结束
接下来在命令行运行 python run.py文件即可
浏览器 访问 127.0.0.1:5000#默认端口 5000
所有代码 运行成功