basesite(文件夹,与manager.py在同一目录下) ----存放flask的使用东西
backend(文件夹 ) **后端逻辑**
---datahandle --存放各类指标代码
---stockpick --存放接口数据
---strategy --
__init__.py --初始化接口,并注册
eg:
from flask_restful import Api
#定义接口
api = Api()
#初始化接口
def init_api(app):
api.init_app(app)
#注册api接口
api.add_resource(PoolResource, '/api_pools', methods=['GET', 'POST', 'PUT', 'DELETE'])
api.add_resource(KpiResource, '/api_kpis', methods=['GET', 'POST', 'PUT', 'DELETE'])
api.add_resource(RecommendResource, '/api_recommends', methods=['GET', 'POST', 'PUT', 'DELETE'])
blueprint(蓝图,增加路由)
--#定义一个蓝图
blue = Blueprint("nowdata_blue", __name__, url_prefix="/别名")
#定义一个app
def init_别名_blue(app):
app.register_blueprint(blueprint=blue)
#定义一个路由
@blue.route("/功能别名", methods=["GET", ])
#定义一个函数
def update_detail():
return jsonify({"msg": "success"})#在网页中输入"/功能别名"返回jsion字符串success
return render_template('index.html')#在网页中输入"/功能别名"返回网页index.html
exc ----第三方模块的导入
__init__.py
--#使用flask的数据库
db = SQLAlchemy()
#第三方的模块导入
def init_extension(app):
#导入数据库
db.init_app(app)
# 自动读取命令行的
# 创建一个Migrate对象并关联对应的应用程序类对象app和数据库管理类对象db
Migrate(app=app, db=db)
#前段框架
Bootstrap(app)
models ----存放数据库的地方
from basesite.exc import db
from basesite.utils.model_util import BaseModel#自己定义的方法,增加修改删除
#定义类名
class TodayBigOrder(BaseModel, db.Model):
#定义表的名字
__tablename__ = "td_stock_big_order"
#定义表结构
id = db.Column(db.BigInteger, primary_key=True, autoincrement=True, name="stock_id")
code = db.Column(db.String(32))
record_date = db.Column(db.DATE, name="date")
price = db.Column(db.String(32))
volume = db.Column(db.String(32), name="number")
big_order_number = db.Column(db.String(32))
prev_price = db.Column(db.String(32))
record_time = db.Column(db.TIME, name="time")
kind_u = db.Column(db.String(32))
kind_d = db.Column(db.String(32))
static ----存放静态物品的地方
--js存放网页格式的地方
templates---存放网页的地方
utils ----存放杂物的地方,定义的各种方法
cal_kpi_by_funcat.py---存储定义的指标方法的地方
model_util.py ----存储修改数据库方法的地方
__init__.py --初始化数据库,app(蓝图),接口
eg:#定义蓝图的信息
def init_blue(app):
init_main_blue(app)
init_pools_blue(app)
init_functional_blue(app)
init_realtime_blue(app)
init_nowdata_blue(app)
init_recommends_blue(app)
#初始化app信息
def create_app(env):
app = Flask(__name__)
#从setting.py里导入mysql的登陆信息
app.config.from_object(environments.get(env))
#初始化蓝图
init_blue(app)
#初始化接口的
init_api(app)
# 初始化第三方模块的导入
init_extension(app)
return app
setting.py --定义数据库的各种登录信息
manage.py(总的启动程序)
# 创建app
app = create_app(os.environ.get('aurora') or 'default')
dynasties
# 直接自动执行命令wz
# 创建了一个manager对象,以支持自定义命令的配置
manager = Manager(app)
# 自动生成数据库的表,存在不生成,不存在就生成wz
# 将MigrateCommand命令加入到manager对象中,这样就可以在命令行中进行数据库迁移的相关命令
manager.add_command('db', MigrateCommand)
#总的启动程序
if __name__ == '__main__':
manager.run()