0
点赞
收藏
分享

微信扫一扫

flask框架项目学习(2)

whiteMu 2022-03-11 阅读 89

在你把项目的准备工作做好后,就可以开始写项目内容了。
首先你需要把你想要建立的对象类建立好,以我的博客项目为例,可以在apps包中新建好一个user类跟一个article类。
这是项目文件的样子:
这是项目文件的样子
在article包中创建好model.py,在user包中也创建好model.py,然后就需要思考文章跟作者的关系。一个作者可以发表多篇文章,所以这是一对多的关系,你就可以在user的model中建立外键。

这是user的模型,其中id是主键,isdelete是为了以后不必物理删除做的标记,rdatatime是建立时间最后的articles是反向引用,方便我们知道文章找作者:
这是user的模型,其中id是主键,isdelete是为了以后不必物理删除做的标记,rdatatime是建立时间最后的articles是反向引用,方便我们知道文章找作者。
use_id是外键跟user.id相连:
use_id是外键跟user.id相连
下面是代码:

from datetime import datetime

from ext import db

#create table user(id int primarykey auto_increment,)
class Article(db.Model):
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    title=db.Column(db.String(50),nullable=False)
    content=db.Column(db.Text,nullable=False)
    pdatetime=db.Column(db.DateTime,default=datetime.now)
    click_num=db.Column(db.Integer,default=0)
    save_num=db.Column(db.Integer,default=0)
    love_num=db.Column(db.Integer,default=0)
    #外键 同步到数据库的外键关系
    user_id=db.Column(db.Integer,db.ForeignKey('user.id'),nullable=False)
from datetime import datetime

from ext import db

#create table user(id int primarykey auto_increment,)
class User(db.Model):
    id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    username=db.Column(db.String(15),nullable=False)
    password=db.Column(db.String(128),nullable=False)
    phone=db.Column(db.String(11),unique=True,nullable=False)
    email=db.Column(db.String(30))
    icon=db.Column(db.String(100))
    isdelete=db.Column(db.Boolean,default=False)
    rdatatime=db.Column(db.DateTime,default=datetime.now)
    #增加一个字段 方便用户找一堆文章
    articles=db.relationship('Article',backref='user')

    def __str__(self):
        return self.username

这样俩个对象就创建完成。然后就可以通过db命令来创建好user跟article表。
只要在终端输入python app.py db init然后就会出现migrations文件夹,然后在输入python app.py db migrate,在migrations文件夹中会出现版本,最后输入python app.py db upgrade就成功创建了俩张表。这个时候可以用pycharm中自带的Database连接数据库。

在这里插入图片描述
就会出现俩张表。你还可以按住ctrl选中article跟user表,右击选择Diagrams查看俩张表的关系。
在这里插入图片描述
到这里俩张表就建立完成了。
在下一篇博客中将会对他们的视图进行演示。

举报

相关推荐

0 条评论