用pycharm进行数据库迁移时,老是报错,好像是语法不对,请教一下各位
from flask_script import Manager
# 导入构建flask应用的方法
from apps import create_app
from flask_migrate import Migrate, MigrateCommand
# 导入数据库
from exts import db
from flask import render_template
# 引入要映射模型 不然迁移的时候找不到
from apps.models.blogmodels import User
# 获取app
app = create_app()
# 把app交给manager管理
manager = Manager(app)
# 设置数据库迁移相关信息
migrate = Migrate(app, db)
# 将迁移的操做使用指令的形式 交给manager
manager.add_command('database', MigrateCommand)
# 设置主路由
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
manager.run()
# 配置信息文件
# 开发环境
ENV = 'development'
# 调试模式
DEBUG = True
# 数据库连接驱动
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/blogdb'
# 创建flask应用app
from flask import Flask
# 导入配置文件
import settings
# 导入数据库
from exts import db
# 导入蓝图板块
from apps.views.user import user_bp
# 声明一个方法 创建app
def create_app():
'''
因为创建flask应用对象的位置发生了变化 没有和模板文件夹在同一个目录 所以要进行修改
'''
app = Flask(__name__,template_folder='../templates', static_folder='../static')
# 设置应用的配置信息 -- 在配置文件中加载配置信息
app.config.from_pyfile('../settings.py')
# 将数据库与项目关联
db.init_app(app)
# 注册蓝图
app.register_blueprint(user_bp)
return app
from flask import Blueprint, request, render_template
from apps.models.blogmodels import User
user_bp = Blueprint('user', __name__, url_prefix='/user')
# 注册
@user_bp.route('/register/', methods=['GET', 'POST'])
def register():
# 点击注册 get请求 渲染注册页面
if request.method == 'GET':
# 只获取注册页面
return render_template('register.html')
else: # 点击注册 提价数据 获取数据信息
# 获取post提交的数据
print(f'{request.form}')
return '注册成功'
# 检验用户名是否存在
@user_bp.route('/checkname/', methods=['POST'])
def check_name():
print(request.form)
# 获取这个用户名
username = request.form.get('username')
# 查询 根据username在数据库中进行查询 获取第一条数据
data = User.query.filter(User.username == username).first()
print(data)
if data: # 如果用户存在 返回存在信息
return {'code': 2000, 'msg':'用户名已存在'}
else:
return {'code': 2001, 'msg':'用户名不存在'}
# 用户
from exts import db
class User(db.Model):
uid = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(20), nullable=False, unique=True)
password = db.Column(db.String(20), nullable=False)
phone = db.Column(db.String(11), unique=True)
def __init__(self, username, password, phone):
self.username = username
self.password = password
self.phone = phone
# 项目的扩展内容
from flask_sqlalchemy import SQLAlchemy
# 创建数据库关系映射对象
db = SQLAlchemy()
报警内容
C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe F:/python学习项目/Day14/BlogProject/manage.py
C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\flask_sqlalchemy_init.py:872: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.
warnings.warn(FSADeprecationWarning(
Traceback (most recent call last):
File "F:\python学习项目\Day14\BlogProject\manage.py", line 28, in
manager.run()
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\flask_script_init.py", line 417, in run
result = self.handle(argv[0], argv[1:])
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\flask_script_init.py", line 353, in handle
app_parser = self.create_parser(prog)
File "C:\Users\Administrator\AppData\Roaming\Python\Python310\site-packages\flask_script_init.py", line 196, in create_parser
command_parser = command.create_parser(name, func_stack=func_stack, parent=self)
AttributeError: 'MigrateCommand' object has no attribute 'create_parser'