这个教学周期学习了flask框架的基础使用,首先创建文件夹,使用python打开,然后安装flask需要安装的插件(可以把下面的内容复制到txt中,拉到打开的文件夹根目录下,在终端使用pip install -r txt名 进行安装):
Flask==1.1.4
Flask-Caching==1.10.1
Flask-Cors==3.0.10
Flask-Migrate==2.7.0
Flask-RESTful==0.3.9
Flask-Script==2.0.6
Flask-SQLAlchemy==2.5.1
MarkupSafe==2.0.1
PyJWT==2.3.0
PyMySQL==1.0.2
qiniu==7.6.0
redis==4.2.2
SQLAlchemy==1.4.27
接着使用工厂模式写需要的配置:
定义以下文件夹和文件:
接着定义app 入口文件里的内容
from create_app import create_app
from setting.config import DevConfig
app = create_app(DevConfig)
create_app:
from flask import Flask
from flask_cors import CORS
from views.cate_bp import cate_bp
from models.models import db
def create_app(config):
flask_app = Flask(__name__)
# 挂载配置项
flask_app.config.from_object(config)
# 跨域
cors = CORS(flask_app)
# 注册蓝图
flask_app.register_blueprint(cate_bp)
# 初始化数据库
db.init_app(flask_app)
return flask_app
manage:
from flask_script import Manager
from flask_migrate import MigrateCommand, Migrate
from app import app
from models.models import db
db.init_app(app)
manage = Manager(app)
migrate = Migrate(app, db)
manage.add_command('db', MigrateCommand)
if __name__ == '__main__':
manage.run()
config:setting:
class DevConfig():
SECRET_KEY = 'sdgdgsgshajdasdhg'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123@127.0.0.1:3306/p7day7'
DEBUG = True
NAME = '开发环境'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
models:models:
from datetime import datetime
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class CateModel(db.Model):
__tablename__ = "cate"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
catename = db.Column(db.String(32))
one = db.relationship('OneModel', backref='cate')
img = db.Column(db.String(500))
class OneModel(db.Model):
__tablename__ = "one"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(32))
img = db.Column(db.String(500))
price = db.Column(db.DECIMAL(10, 2))
cateid = db.Column(db.Integer, db.ForeignKey('cate.id'))
views:cate_bp:
from flask import Blueprint, jsonify, request
from flask_restful import Api, Resource, reqparse
from models.models import *
cate_bp = Blueprint('cate_bp', __name__, url_prefix='/cates')
api = Api(cate_bp)
class UploadViews(Resource):
def post(self):
img = request.files['file']
new_file_path1 = "static/%s" % img.filename
img.save("./" + new_file_path1)
return jsonify({
'code': 200,
'data': new_file_path1
})
class CateOneView(Resource):
def get(self):
req = reqparse.RequestParser()
req.add_argument("id")
args = req.parse_args()
print('获取的要获取的数据的分类id》》', args['id'])
print('要获取的数据的分类》》', args)
aa = OneModel.query.all()
bb = []
for i in aa:
# if i.cateid == args['id']:
bb.append({
'id': i.id,
'name': i.name,
'img': i.img,
'price': float(i.price),
'cateid': i.cateid,
})
# else:
# continue
return jsonify(bb)
api.add_resource(UploadViews, '/upload')
api.add_resource(CateOneView, '/cateone')