博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发布功能完成。
阅读量:4561 次
发布时间:2019-06-08

本文共 1566 字,大约阅读时间需要 5 分钟。

  • 编写要求登录的装饰器

from functools import wraps

def loginFirst(func): #参数是函数

@wraps(func)

      def wrapper(*args, ** kwargs): #定义个函数将其返回

          #要求登录

          return func(*args, ** kwargs)

      return wrapper #返回一个函数

  • 应用装饰器,要求在发布前进行登录,登录后可发布。
@app.route('/question/',methods=['GET','POST']) @loginFirst def question():

 

  • 建立发布内容的对象关系映射。
class Question(db.Model):
  • 完成发布函数。

保存到数据库。

重定向到首页。

1 class Question(db.Model): 2     __tablename__='question' 3     id = db.Column(db.Integer, primary_key=True, autoincrement=True) 4     title = db.Column(db.String(100),nullable=False) 5     detail = db.Column(db.Text,nullable=False) 6     creat_time = db.Column(db.DateTime,default=datetime.now) 7     author_id = db.Column(db.Integer, db.ForeignKey('user.id')) 8     author = db.relationship('User',backref=db.backref('question')) 9 10 11 def loginFirst(func):12     @wraps(func)13     def wrapper(*args, **kwargs):14         if session.get('user'):15             return func(*args, **kwargs)16         else:17             return  redirect(url_for('login'))18         return wrapper19 20 21 22 @app.route('/question',methods=['GET','POST'])23 @loginFirst24 def question():25     if request.method == 'GET':26         return render_template('question问答.html')27     else:28         title = request.form.get('title')29         detail = request.form.get('detail')30         author_id = User.query.filter(User.username == session.get('user')).first().id31         question = Question(title = title,detail = detail,author_id = author_id)32         db.session.add(question)

 

转载于:https://www.cnblogs.com/l-y-j/p/7908107.html

你可能感兴趣的文章
React Children
查看>>
大数据等最核心的关键技术:32个算法
查看>>
Maven多模块项目搭建
查看>>
redis列表list
查看>>
雷林鹏分享: C# 简介
查看>>
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
查看>>
实用类-<Math类常用>
查看>>
构建之法阅读笔记之四
查看>>
10.15习题2
查看>>
Windows Server 2008 R2 备份与恢复详细实例
查看>>
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>
java线程系列---java5中的线程池
查看>>
SQL表连接
查看>>
新秀系列C/C++经典问题(四)
查看>>
memset函数具体说明
查看>>
经常使用的android弹出对话框
查看>>
确保新站自身站点设计的合理性的六大注意点
查看>>