예제 #1
0
def createPost():

    form = PostForm(data=request.json)
    if form.validate():
        # add post
        post = Post.fromForm(form)
        post.add()
        return jsonify(post.serialize), 200
    return jsonify(form.errors), 400
예제 #2
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(title=form.title.data,
                    content=form.content.data,
                    author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post has been created!', 'success')
        return redirect(url_for('home'))
    return render_template('create_post.html',
                           title='New Post',
                           form=form,
                           legend='New Post')
예제 #3
0
def new_post():
    form = PostForm()
    if form.validate_on_submit():
        if Post.query.filter_by(title=form.title.data).first():
            flash('Пост с таким заголовком уже существует!', 'danger')
        else:
            post = Post(title=form.title.data,
                        content=form.content.data,
                        author=current_user)
            db.session.add(post)
            db.session.commit()
            flash('Ваш пост создан!', 'success')
            return redirect(url_for('home'))
    return render_template('new_post.html',
                           title='Новый пост',
                           form=form,
                           legend='Новый пост')
예제 #4
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash('Your post has been updated!', 'success')
        return redirect(url_for('post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    return render_template('create_post.html',
                           title='Update Post',
                           form=form,
                           legend='Update Post')
예제 #5
0
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        post.title = form.title.data
        post.content = form.content.data
        db.session.commit()
        flash('Пост успешно редактирован!', 'success')
        return redirect(url_for('post', post_id=post.id))
    elif request.method == 'GET':
        form.title.data = post.title
        form.content.data = post.content
    return render_template('new_post.html',
                           title='Обновление поста',
                           form=form,
                           legend='Обновление поста')
예제 #6
0
def index():
    form = PostForm()
    if form.validate_on_submit():
        post = Post(body=form.post.data, author=current_user)
        db.session.add(post)
        db.session.commit()
        flash('Your post is now live!')
        return redirect(
            url_for('index')
        )  # redirect so that this is a GET request,  avoids duplicate submit in browser
    page = request.args.get('page', 1, type=int)
    posts = Post.query.order_by(Post.timestamp.desc()).paginate(
        page, app.config['POSTS_PER_PAGE'], False)
    # query is actually only triggerd after the ALL()!
    next_url = url_for('index',
                       page=posts.next_num) if posts.has_next else None
    prev_url = url_for('index',
                       page=posts.prev_num) if posts.has_prev else None
    return render_template("index.html",
                           title='Home Page',
                           form=form,
                           posts=posts.items,
                           next_url=next_url,
                           prev_url=prev_url)