zoukankan      html  css  js  c++  java
  • 一百三十六:CMS系统之发布帖子后台逻辑

    模型

    class PostModel(db.Model):
    __tablename__ = 'post'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(200), nullable=False)
    content = db.Column(db.Text, nullable=False)
    create_time = db.Column(db.DateTime, default=datetime.now)
    board_id = db.Column(db.Integer, db.ForeignKey('board.id'))
    board = db.relationship('BoardModel', backref='posts')

    manager.py中导入模型

    映射到数据库

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

    登录验证装饰器

    from flask import session, redirect, url_for, g
    from functools import wraps
    import config


    def login_required(func):
    """ 登录验证 """

    @wraps(func)
    def inner(*args, **kwargs):
    if config.FRONT_USER_ID in session:
    return func(*args, **kwargs)
    else:
    return redirect(url_for('front.signin'))

    return inner

    form

    class AddPostForm(BaseForm):
    title = StringField(validators=[InputRequired(message='请输入标题')])
    content = StringField(validators=[InputRequired(message='请输入内容')])
    board_id = IntegerField(validators=[InputRequired(message='请输入板块id')])

    视图

    @bp.route('/apost/', methods=['GET', 'POST'])
    @login_required
    def apost():
    """ 添加帖子 """
    form = AddPostForm(request.form)
    if request.method == 'POST':
    if form.validate():
    title = form.title.data
    content = form.content.data
    board_id = form.board_id.data
    board = BoardModel.query.get(board_id)
    if not board:
    return restful.params_error(message='没有这个板块')
    post = PostModel(title=title, content=content)
    post.board = board
    db.session.add(post)
    db.session.commit()
    return restful.success()
    else:
    return restful.params_error(form.get_error())
    boards = BoardModel.query.all()
    return render_template('front/front_apost.html', boards=boards)

    模板

  • 相关阅读:
    【LeetCode每天一题】Combinations(组合)
    【算法】字符串匹配算法
    【LeetCode每天一题】Edit Distance(编辑距离)
    【LeetCode每天一题】Set Matrix Zeroes(设置0矩阵)
    SpringIOC和DI
    SpringMVC基础
    SpringMVC框架简介
    Spring配置JDBCTemplate
    java自定义注解
    KTV项目之3个ListView的跳转和加载歌手图片
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11973131.html
Copyright © 2011-2022 走看看