class Tweet(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(140)) create_time = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return 'id={}, tweet={}, create at={}, user_id={}'.format( self.id, self.body, self.create_time, self.user_id)
class Tweet(db.Model): id = db.Column (db.Integer ,primary_key = True) body = db.Column(db.String(140)) create_time = db.Column(db.DateTime,default= datetime.utcnow) user_id = db.Column(db.Integer ,db.ForeignKey('user.id'))#这里的'user,id'里的user不是class那个user而是所建的表的user。user_id必须是user那个table里面的id,所以用ForeignKey关联user里面的id def __repr__(self):#为了调试方便创建的函数,打印一个实例或者在shell显示 return 'id={},body={},create_time={},user_id={}'.format( self.id,self.create_time,self.body,self.user_id )
class Tweet(db.Model): id = db.Column(db.Integer, primary_key=True) body = db.Column(db.String(140)) create_time = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) """ 这里user是小写,代表table的名字,而这个class是大写的User 默认情况下table的名字就是小写的class """ def __repr__(self): return 'id = {}, body = {}, create at {}, user_id = {}'.format( self.id, self.body, self.create_time, self.user_id)
class Tweet(db.Model): #從db.Model繼承 id = db.Column(db.Integer, primary_key=True) #貼文的ID body= db.Column(db.String(140)) #文字本體 長度限制140 create_time= db.Column(db.DateTime, default=datetime.utcnow) #貼文的時間 user_id= db.Column(db.Integer, db.ForeignKey('user.id')) #限制貼文者一定在db 使用者表裡的user.id ForeignKey關聯 def __repr__(self): return "id={},body={},create_time={},user_id={}".format( self.id, self.body, self.create_time, self.user_id )
from twittor import db, login_manager #这个db是init初始化的db from datetime import datetime from hashlib import md5 from werkzeug.security import generate_password_hash, check_password_hash #用来保护密码,存为哈希值 from flask_login import UserMixin #提供session管理的方法 followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id')), ) class User(UserMixin, db.Model): #通过继承db.Model创建class User id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True, index=True) #加上index是因为速度会快一些 email = db.Column(db.String(64), unique=True, index=True) password_hash = db.Column(db.String(128)) about_me = db.Column(db.String(128)) create_time = db.Column(db.DateTime, default=datetime.utcnow) tweets = db.relationship( 'Tweet', backref='author', lazy='dynamic') #这里的'Tweet'里的,用来了解一个用户发了多少个推特,不是表中的一列 followed = db.relationship('User', secondary=followers, primaryjoin=(followers.c.follower_id == id), secondaryjoin=(followers.c.followed_id == id), backref=db.backref('followers', lazy='dynamic'),