Giter Site home page Giter Site logo

Comments (1)

greyli avatar greyli commented on August 9, 2024 2

It depends on the tool you use. For example, if you use Flask-WTF and Flask-SQLAlchemy, then the save/upload operation will just like any normal form input:

import os

from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
from flask_sqlalchemy import SQLAlchemy
from flask_ckeditor import CKEditor, CKEditorField

app = Flask(__name__)

app.secret_key = 'secret string'

ckeditor = CKEditor(app)
db = SQLAlchemy(app)


class Post(db.Model):  # database model class
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(64))
    body = db.Column(db.Text)


class PostForm(FlaskForm):  # form class
    title = StringField('Title')
    body = CKEditorField('Body', validators=[DataRequired()])
    submit = SubmitField('Submit')


@app.route('/write', methods=['GET', 'POST'])
def write():
    form = PostForm()
    if form.validate_on_submit():  # create new post
        title = form.title.data
	body = form.body.data
        post = Post(title=title, body=body)  # create record instance
        db.session.add(post)  # add to database session
        db.session.commit()  # commit change into database      
	return render_template('post.html', title=title, body=body)
    return render_template('write.html', form=form)


@app.route('/edit/<int:post_id>', methods=['GET', 'POST'])
def edit(post_id):
    post = Post.query.get_or_404(post_id)  # query post in database
    form = PostForm()
    if form.validate_on_submit():  # edit/update created post
        post.title = form.title.data  # set new value
	post.body = form.body.data  # set new value
        db.session.commit()  # commit change into database      
	return render_template('post.html', title=title, body=body)
    form.body.data = post.body  # preset the form input data
    return render_template('edit.html', form=form)

You can check Flask-SQLAlchemy's documentation for more infomation.

from flask-ckeditor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.