1.项目基础配置
1.配置基础文件
第三方模块导入(利用文件导入)pip install -r new.txt 安装第三方模块
跳转–强制更新安装pip用法
强制更新安装pip,(需使用两遍,详情用法点击上方链接)python -m pip install -U --force-reinstall pip
基础三文件,入口、核心、配置项
核心对象文件(后续有追加) create_app.py
from flask import Flask #0-0
from flask_cors import CORS #2-1注册跨域
def create_app(config):
#0-1实例化一个变量
flask_app =Flask(__name__)
# 1-1挂载配置项
flask_app.config.from_object(config)
# 2-2使用跨域
cors =CORS(flask_app)
return flask_app #返回实例化对象
配置项文件 settings(设置),config(配置) #两个名都可
#配置项的基类(基础,BaseConfig
class BaseConfig(): #
SECRET_KEY='cfyvgubhinjo' #密钥,随机的()
SQLALCHEMY_DATABASE_URI =''
SQLALCHEMY_TRACK_MODIFICATIONS = False # 追踪数据的修改信号
SQLALCHEMY_ECHO = True # 是否在控制台打印输出sql语句
#开发的配置项(继承基础,dev
class DevConfig(BaseConfig):
#可直接写了开发配置
SQLALCHEMY_DATABASE_URI ='mysql+pymysql://root:123456@127.0.0.1:3306/p7_cs01s'
#生产阶段的配置项,(继承基础,ProdConfig
class ProdConfig(DevConfig):
pass
入口文件 app.py
from create_app import create_app #入口文件,提供flask核心对象
from settings import DevConfig #导入开发配置项
app =create_app(DevConfig) #工厂函数
2.创建项目相关
建立模型文件夹(model)、视图文件夹(view)
1.配置模型类
模型类管理 manage.py(使用迁移命令,需创建)
from flask_script import Manager
from flask_migrate import MigrateCommand,Migrate
from app import app
from model.model import db
#先创黑窗口建命令行
manage=Manager(app)
#实例化一个迁移对象
migrate = Migrate(app,db)
#绘制命令行工具添加一组命令
manage.add_command('db',MigrateCommand)
if __name__ =='__main__':
manage.run()
模型类的命令
# 初始化迁移文件 # 初始化,只需要初始化一次
# python manage.py db init
# 生成迁移文件
# python manage.py db migrate
# 执行迁移
# python manage.py db upgrade
配置模型类
from flask_sqlalchemy import SQLAlchemy
db =SQLAlchemy()
class Channel(db.Model):
id_channel =db.Column(db.Integer,primary_key=True,autoincrement=True,comment='分类id')
name_channel =db.Column(db.String(30),comment='分类')
score =db.relationship('News',backref='channel')
class News(db.Model):
id_new =db.Column(db.Integer,primary_key=True,autoincrement=True,comment='新闻id')
title =db.Column(db.String(300),comment='新闻标题')
read_count =db.Column(db.Integer,default=0,comment='阅读数')
img_new =db.Column(db.String(300),comment='封面')
content =db.Column(db.String(300),comment='文章内容')
time_creation =db.Column(db.DateTime,default=datetime.now,comment='创建时间')
good_count =db.Column(db.Integer,default=0,comment='点赞数')
id_channel =db.Column(db.Integer,db.ForeignKey('channel.id_channel'))
2.配置视图类
配置视图类,基础框架
from flask import Blueprint #导入功能包:蓝图
from flask_restful import Api,Resource #导入功能包:接口、资源参数
# url_prefix url前缀,可不加
user_app =Blueprint('user_bp',__name__)
# user_app =Blueprint('user_bp',__name__,url_prefix='/users')
api =Api(user_app) #接口化
class Upload_View(Resource):
pass
api.add_resource(Upload_View,'/upload') #视图路由
3.核心文件的进阶用法
from flask import Flask #0-0
from flask_cors import CORS #2-1注册跨域
from model.models import db #导入db(初始化模型类
from views.user_bp import user_app #导入视图中的实例化对象
from views.goods_bp import goods_app
def create_app(config):
#0-1实例化一个变量
flask_app =Flask(__name__)
# 1挂载配置项
flask_app.config.from_object(config)
# 2-2使用跨域
cors =CORS(flask_app)
#注册蓝图(视图中的名字,类似与django的子应用),user_bp中的user_app
flask_app.register_blueprint(user_app)
flask_app.register_blueprint(goods_app)
db.init_app(flask_app) #初始化db
return flask_app #返回实例化对象
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。