我正在开发一个 Flask 应用程序(我是新手),并尝试将其拆分为逻辑项目结构:
经过一些返工后,我继续遇到以下错误的问题:
TypeError: SQLAlchemy.init() 需要 1 到 2 个位置参数,但给出了 4 个
调试时,光标第二次到达User的类定义时出现错误,如下:
from ..user_mgr_db import db
from sqlalchemy import Integer, String, Column, DateTime, Boolean
class User(db.Model):
id = db.Column(db.Integer(), primary_key=True)
username = Column(db.String(80), unique=True, nullable=False)
email = Column(db.String(120), unique=True, nullable=False)
password = Column(db.String(80), nullable=False)
active = Column(db.Boolean(), default=True, nullable=False)
confirmed_at = Column(db.DateTime())
def __repr__(self):
return f'<User {self.username}>'
所以,调试的时候,我把所有的代码行都跑完了,没有问题,然后就出现了错误。在类定义的第二遍中进入代码使我进入了未知的 Flask 代码领域。但我的代码一定有问题。
user_mgr_db
有这个代码:
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.orm import DeclarativeBase
class UserMgr(DeclarativeBase):
pass
db = SQLAlchemy(model_class=UserMgr)
print(db)
初始化
user_bp
中的蓝图__init__.py
时出现错误:jos_user_mgr
随着
import os
from flask import Flask, g
def create_app(stage_config=None):
app = Flask(__name__, instance_relative_config=True)
if stage_config is None:
app.config.from_object('config.DevConfig')
else:
app.config.from_object(stage_config)
try:
os.makedirs(app.instance_path)
except OSError:
pass
from .user_mgr_db import db
db.init_app(app)
from .views.user_views import user_bp
from .api.user_api import user_api_bp
app.register_blueprint(user_bp, url_prefix='/user_mgr')
app.register_blueprint(user_api_bp, url_prefix='/user_mgr_api')
@app.route("/hello")
def hello():
result = "<p>We got this far</p>"
return result
return app
有这个代码:
user_views
有人可以帮我解决这个问题吗?
我尝试了很多不同的场景:
更改了导入语句的位置
from flask import Blueprint, render_template, request, redirect, url_for
from ..models.user import User
user_bp = Blueprint('user_bp', __name__, template_folder='templates')
@user_bp.route('/')
def home():
return render_template('home.html')
@user_bp.route('/users')
def users():
all_users = User.query.all()
return render_template('users.html', users=all_users)