组织目录结构
为了让项目更加清晰,我们需要重新组织一下目录结构,首先对目录结构进行拆分。
拆分前
原始manage.py文件代码如下:
# manage.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from flask_migrate import Migrate
app = Flask(__name__)
app.config['SECRET_KEY'] = 'daxiongketang'
app.config['SQLALCHEMY_DATABASE_URI'] = (
'mysql+pymysql://root:andy123456@localhost/daxiong?charset=utf8mb4'
)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
@app.route('/')
def index():
return "hello world"
if __name__ == "__main__":
app.run()
拆分后
拆分后目录结构如下:
├── app
│ ├── __init__.py
│ ├── models.py
│ ├── routes.py
├── manage.py
├── migrations
└── venv
manage.py文件代码如下
# manage.py
from app import app
if __name__ == '__main__':
app.run(debug=True)
app下__init__.py代码如下:
# app/__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config['SECRET_KEY'] = 'daxiongketang'
app.config['SQLALCHEMY_DATABASE_URI'] = (
'mysql+pymysql://root:andy123456@localhost/daxiong?charset=utf8mb4'
)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
login_manager = LoginManager(app)
# 导入路由
from app import routes
app下models.py代码如下:
from app import db
from datetime import datetime
class Course(db.Model):
course_id = db.Column(db.String(100), primary_key=True, nullable=False)
product_id = db.Column(db.String(100), nullable=False)
product_type = db.Column(db.Integer, nullable=False)
product_name = db.Column(db.String(125), nullable=False)
provider = db.Column(db.String(125), nullable=False)
score = db.Column(db.Float(2))
score_level = db.Column(db.Integer)
learner_count = db.Column(db.Integer)
lesson_count = db.Column(db.Integer)
lector_name = db.Column(db.String(125))
original_price = db.Column(db.Float(2))
discount_price = db.Column(db.Float(2))
discount_rate = db.Column(db.Float(2))
img_url = db.Column(db.String(125))
big_img_url = db.Column(db.String(125))
description = db.Column(db.Text)
class Sale(db.Model):
id = db.Column(db.Integer, autoincrement=True, primary_key=True, nullable=False)
course_id = db.Column(db.String(100), db.ForeignKey('course.course_id'))
product_name = db.Column(db.String(125), nullable=False)
learner_count = db.Column(db.Integer)
create_time = db.Column(db.Date, default=datetime.today())
course = db.relationship('Course', backref=db.backref('Sale', lazy='dynamic'))
app下routes.py代码如下:
#app/routes.py
from app import app
@app.route
def index():
return "hello world"