Пример #1
0
 def post(self):
     request_dict = request.get_json()
     if not request_dict:
         response = {'message': 'No input data provided'}
         return response, status.HTTP_400_BAD_REQUEST
     errors = blog_schema.validate(request_dict)
     if errors:
         return errors, status.HTTP_400_BAD_REQUEST
     try:
         category_name = request_dict['category']['name']
         category = Category.query.filter_by(name=category_name).first()
         if category is None:
             # Create a new Category
             category = Category(name=category_name)
             db.session.add(category)
         # Now that we are sure we have a category
         # create a new Message
         blog = Blog(title=request_dict['title'],
                     content=request_dict['content'],
                     author=request_dict['author'],
                     category=category)
         blog.add(blog)
         query = Blog.query.get(blog.id)
         result = blog_schema.dump(query).data
         return result, status.HTTP_201_CREATED
     except SQLAlchemyError as e:
         db.session.rollback()
         resp = jsonify({"error": str(e)})
         return resp, status.HTTP_400_BAD_REQUEST
Пример #2
0
def new_post():
    back = session['back']
    session['back'] = request.endpoint
    title = ""
    body = ""
    id = ""
    editing = False
    current_user = User.get_user(session['email'])
    if request.method == 'GET':
        try:
            id = request.args.get('id')
        except:
            pass
        if id:
            blog = Blog.get(None, id)
            title = blog.title
            body = blog.body
            id = blog.id
            editing = True

    if request.method == "POST":
        title = request.form['title']
        body = request.form['body']
        try:
            editing = request.form['editing']
        except:
            pass
        if editing:
            id = request.form['id']

        if current_user and title and body:
            if not editing:
                blog = Blog(title, body, current_user,
                            datetime.date.today().strftime('%b %d, %Y'))
            else:
                if id:
                    blog = Blog.get(None, id)
                    blog.title = title
                    blog.body = body
            Blog.add(blog)
            return redirect("/blog?blog-id=" + str(blog.id))
        else:
            flash("Please fill out all fields", "Error")

    return render_template("new_post.html",
                           title=title,
                           body=body,
                           editing=editing,
                           id=id,
                           back=back)