Flask实战2问答平台-发布问答功能完成

我们需要新建一个表,可以采用两种方式:
(1)手动建表
(2)使用flask_migrate.
说一下使用第二种方法建表的方式

(1)在models.py文件中添加如下代码

class Question(db.Model):
    __tablename__ = 'question'
    id = db.Column(db.Integer,primary_key =True,autoincrement = True)
    title = db.Column(db.String(100),nullable= False)
    content = db.Column(db.Text,nullable = False)
    #now()获取的是服务器第一次运行的时间
    # now是每次创建一个模型时获取当前时间
    create_time = db.Column(db.DateTime,default = datetime.now)
    author_id = db.Column(db.Integer,db.ForeignKey('user.id'))
    author = db.relationship('User',backref = db.backref('questions'))

此时我们在终端中执行

>>>python manager.py db migrate
>>>python manager.py db upgrade

这里写图片描述
(2)之后我们可以登录MySQL查看,此时已经新建好了一张表
在manager.py中导入

from models import User,Question

(3)然后在主py文件中,完善

@app.route('/question',methods=['GET','POST'])
@login_required
def question():
    if request.method == 'GET':
        return render_template('question.html')
    else:
        title = request.form.get('title')
        content = request.form.get('content')
        question = Question(title = title,content = content)
        user_id = session.get('user_id')
        user = User.query.filter(User.id == user_id).first()
        question.author = user
        db.session.add(question)
        db.session.commit()
        return redirect(url_for('index'))

测试
输入内容,点击立即发布后,跳转到index.html此时并不会出现我们刚才发布的内容,因为这个功能还没完成.再看看数据库中question表,发现内容已经添加进去.OK
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值