这就是我的工作
from flaskblog import User, Post
我收到此错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>
ImportError: cannot import name 'Post'
如果我尝试导入用户并在python控制台中发布,则会出现相同的错误:
ImportError: cannot import name 'Post'.
如果我仅导入用户
from flaskblog import User
我没有错误。
然后我创建user1
来插入有关user1.
的信息
user1=User(username='rupak' ,email='rupak@demo.com', password='rupak123')
我尝试添加用户,但出现此错误:
db.session.add(user1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'db' is not defined
,并且提交也无法正常工作
我的主程序看起来像这样。用户和帖子有一种关系(一对多)
from datetime import datetime
from flask import Flask, render_template, url_for
from flask_sqlalchemy import SQLAlchemy
from templates.form import RegistrationForm, LoginForm
app = Flask(__name__)
app.config['SECRET_KEY'] = 'f6d2ba3cb4e3ef1e2b330000562a66f0'
app.config['SQLALCHEMY_DATABASE_URI']= 'sqlite:///site.db'
db = SQLAlchemy(app)
class User(db.Model):
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String(20),unique=True,nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
image_file =db.Column(db.String(20),nullable=False,default='default.jpg')
password = db.Column(db.String(60), nullable=False)
posts = db.relationship('Post',backref='author',lazy=True)
def __repr__(self):
return f"User('{self.username}','{self.email}','{self.image_file}')"
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
date_posted=db.Column(db.DateTime,nullable=False,
default=datetime.utcnow)
content = db.Column(db.Text, nullable=Fals
user_id=db.Column('db.Integer',db.ForeignKey('user.id'),nullable=False)
def __repr__(self):
return f"Post('{self.title}','{self.date_posted}')"
posts = [{'author': 'rupak das', 'title': 'Blog Post1', 'content':
'first post content', 'date_post': 'April 01 2018'},
{
'author': 'tonmy bakshi', 'title': 'Blog Post2',
'content': 'second post content',
'date_post': 'march 03 2018'}]
@app.route('/')
def hello():
return render_template('home.html', posts=posts)
@app.route('/about')
def about():
return render_template('about.html')
@app.route('/register')
def register():
form = RegistrationForm()
return render_template('register.html', title='Register', form=form)
@app.route('/login')
def login():
form = LoginForm()
return render_template('login.html', title='Login', form=form)
if __name__ == '__main__':
app.run(port=4494)
app.run(debug=True)
答案 0 :(得分:0)
您有很多问题。
1)阅读有关导入功能的文档。
2)类用户的语法不正确(我认为您在复制时只是有一个错误)。
3)db是数据库连接实例。您需要先创建它。
您能提供有关项目文件夹的更多信息吗?