我一直在借助此视频构建一个Flask应用程序: https://www.youtube.com/watch?v=dam0GPOAvVI&t=3256s
以下是迄今为止我的init文件:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from os import path
DB_NAME = "database.db"
db = SQLAlchemy()
app = Flask(__name__)
app.config['SECRET_KEY'] = 'bindthemostselling'
app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_NAME}'
db.init_app(app)
from views import views
from auth import auth
app.register_blueprint(views, url_prefix='/')
app.register_blueprint(auth, url_prefix='/')
if __name__ == '__main__':
app.run(debug=True)
这是我的模型文件,到目前为止,它只是一个类:
from flask_login import UserMixin
from . import db
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(150), unique=True)
password = db.Column(db.String(150))
first_name = db.Column(db.String(150))
我的问题是User类中的db.Column无法识别。我尝试重新安装sqlalchemy和flask,我再次查看了他所做的一切,甚至从他的github复制了代码,但它仍然无法识别该函数,甚至我从视频中注意到的其他函数。这是我第一次尝试制作一个真正的python应用程序,所以语法中可能缺少一些东西
提前谢谢
编辑:
因此,我更新了init文件,以包含所有内容,这样我可以运行并查看我在这里得到的错误是我现在遇到的错误:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from os import path
from models import User
from flask_login import LoginManager
DB_NAME = "database.db"
db = SQLAlchemy()
app = Flask(__name__)
app.config['SECRET_KEY'] = 'bindthemostselling'
app.config['SQLALCHEMY_DATABASE_URI'] = f'sqlite:///{DB_NAME}'
db.init_app(app)
from views import views
from auth import auth
app.register_blueprint(views, url_prefix='/')
app.register_blueprint(auth, url_prefix='/')
login_manager = LoginManager()
login_manager.login_view = 'auth.login'
login_manager.init_app(app)
@login_manager.user_loader
def load_user(id):
return User.query.get(int(id))
def create_database(app):
if not path.exists('.' + DB_NAME):
db.create_all(app=app)
print('Created Database!')
create_database(app)
if __name__ == '__main__':
app.run(debug=True)
这是我得到的回溯(如果格式不好,很抱歉):
回溯(最近一次呼叫最后一次):
文件“c:\Users\Ashraf\FlaskToDo_uem>inituu.py”,第4行,在
从模型导入用户
文件“c:\Users\Ashraf\FlaskToDo\models.py”,第2行,在
从…起导入数据库
ImportError:尝试在没有已知父包的情况下进行相对导入
很明显,数据库没有正确导入?这不可能是真的,因为当我创建用户类并传递db.Model时,它识别了它。我到底错过了什么
尝试从更改模型文件中的导入语句
致:
这样,您应该会得到一个循环导入错误,所以在定义db之后在init中移动
from models import User
这是完整的设置:
初始化:
型号:
编辑:
添加要在应用程序中实际导航的路线:
相关问题 更多 >
编程相关推荐