예제 #1
0
def add_article():
    form = ArticleForm(request.form)

    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data

        # Create cursor
        cur = mysql.connection.cursor()

        # Insert article
        cur.execute(
            "INSERT INTO articles(title, body, author, user_id) VALUES (%s, %s, %s, %s)",
            (title, body, session['username'], session['user_id']))
        mysql.connection.commit()

        # Close connection
        cur.close()

        # Let user know of success
        flash('Article created', 'success')

        # Return corresponding page
        return redirect(url_for('dashboard'))

    return render_template('add_article.html', form=form)
예제 #2
0
def edit_article(id):
    cur = mysql.connection.cursor()
    result = cur.execute("SELECT * FROM articles WHERE id = %s", [id])
    article = cur.fetchone()
    cur.close()

    form = ArticleForm(request.form)
    form.title.data = article['title']
    form.body.data = article['body']

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']
        app.logger.info(title)

        cur = mysql.connection.cursor()
        cur.execute("UPDATE articles SET title=%s, body=%s WHERE id=%s",
                    (title, body, id))
        mysql.connection.commit()
        cur.close()

        flash('Article Updated', 'success')
        return redirect(url_for('dashboard'))

    return render_template('article/edit_article.html', form=form)
예제 #3
0
def edit_article(id):
    db = MysqlUtil()  # 实例化数据库操作类
    fetch_sql = "SELECT * FROM articles WHERE id = '%s' and author = '%s'" % (
        id, session['username'])  # 根据笔记ID查找笔记信息
    article = db.fetchone(fetch_sql)  # 查找一条记录
    # 检测笔记不存在的情况
    if not article:
        flash('ID错误', 'danger')  # 闪存信息
        return redirect(url_for('dashboard'))
    # 获取表单
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():  # 如果用户提交表单,并且表单验证通过
        # 获取表单字段内容
        title = request.form['title']
        content = request.form['content']
        update_sql = "UPDATE articles SET title='%s', content='%s' WHERE id='%s' and author='%s'" % (
            title, content, id, session['username'])
        db = MysqlUtil()  # 实例化数据库操作类
        db.update(update_sql)  # 更新数据的SQL语句
        flash('更改成功', 'success')  # 闪存信息
        return redirect(url_for('dashboard'))  # 跳转到控制台
    # 从数据库中获取表单字段的值
    form.title.data = article['title']
    form.content.date = article['content']
    return render_template('edit_article.html', form=form)  # 渲染模板
예제 #4
0
파일: app.py 프로젝트: Nandan42/CryptoWatch
def add_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data

        # Create Cursor
        cur = mysql.connection.cursor()

        # Execute
        cur.execute(
            "INSERT INTO articles(title, body, author) VALUES(%s, %s, %s)",
            (title, body, session['username']))

        # Commit to DB
        mysql.connection.commit()

        #Close connection
        cur.close()

        flash('Article Created', 'success')

        return redirect(url_for('dashboard'))

    return render_template('add_article.html', form=form)
예제 #5
0
파일: app.py 프로젝트: Md7tz/FLASK_CRUD_APP
def edit_article(id):
    # Create cursor
    cur = mysql.connection.cursor()

    # Get article by id
    cur.execute('SELECT * FROM articles WHERE id = %s', [id])
    article = cur.fetchone()

    # Create form
    form = ArticleForm(request.form)

    # populate fields
    form.title.data = article['title']
    form.body.data = article['body']

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']

        # Update table
        cur.execute(
            'UPDATE articles SET title = %s, body = %s, edit_date = CURRENT_TIMESTAMP WHERE id = %s',
            (title, body, id))

        # Commit
        mysql.connection.commit()

        # close cursor
        cur.close()

        flash(f'Article {id} Updated', 'success')
        return redirect(url_for('.dashboard'))
    return render_template('edit_article.html', form=form)
예제 #6
0
파일: app.py 프로젝트: rayjc/newsmart
def create_article():
    """
    Create an article object and store on db.
    Return article object in JSON response.
    Data: title, content, url, source, summary, img_url
    """
    data = request.json
    form = ArticleForm(**data, meta={'csrf': False})

    if form.validate():
        if not newsmart.isUrlValid(form.url.data):
            return (jsonify({"errors": {"url": ["Not a valid url."]}}), 400)

        article = Article.query.filter(
            Article.url == form.url.data).one_or_none()
        if article:
            # article object has been created already
            return (jsonify({"article": article.serialize()}), 200)
        else:
            # create new article object and save
            new_article = Article.new(**form.data)
            return (jsonify({"article": new_article.serialize()}), 201)

    errors = {"errors": form.errors}
    return (jsonify(errors), 400)
예제 #7
0
def update(blog_id):
    if not session.get('logged_in'):
        abort(404)
    else:
        form = ArticleForm()
        if request.method == 'POST':
            if form.validate() == False:
                return render_template('add.html', form=form)
            else:

                g.db = connect_db()
                cur = g.db.execute('UPDATE fblog SET title =' +
                                   form.title.data + ', content =' +
                                   form.content.data + ' WHERE blog_id=' +
                                   str(blog_id))
                g.db.commit()
                g.db.close()
                flash('Article updated successfully')
                return redirect(url_for('admin'))

        elif request.method == 'GET':
            g.db = connect_db()
            article = query_db(
                'SELECT blog_id, title, content FROM fblog WHERE blog_id = ?',
                [blog_id],
                one=True)
            form.title.data = article['title']
            form.content.data = article['content']
            return render_template('edit.html', form=form, article=article)
예제 #8
0
def edit_article(id):
    # Create cursor
    cur = mysql.connection.cursor()
    # Get article by id
    result = cur.execute("SELECT * FROM articles WHERE id=%s", [id])
    article = cur.fetchone()
    # Get form
    form = ArticleForm(request.form)
    # Populate article form fields
    form.title.data = article['title']
    form.body.data = article['body']
    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']
        # Create cursor
        cur = mysql.connection.cursor()
        # Execute
        cur.execute("UPDATE articles SET title=%s, body=%s WHERE id=%s",
                    (title, body, id))
        # Commit to DB
        mysql.connection.commit()
        # Close connection
        cur.close()
        flash('Article Updated', 'success')
        return redirect(url_for('dashboard'))
    return render_template('edit_article.html', form=form)
예제 #9
0
def article_update(article_id):
    cur = mysql.connection.cursor()
    query = "SELECT * FROM articles WHERE id=%s"
    result = cur.execute(query, [article_id])
    article = {}
    if result > 0:
        article = cur.fetchone()
    cur.close()

    form = ArticleForm(request.form)

    if request.method == 'GET':
        form.title.data = article['title']
        form.body.data = article['body']
    elif request.method == 'POST' and form.validate():
        cur = mysql.connection.cursor()
        mysql.connection.autocommit(on=True)
        query = """ UPDATE articles 
                    SET title=%s, body=%s 
                    WHERE id=%s """
        params = (form.title.data, form.body.data, article_id)
        cur.execute(query, params)
        cur.close()
        flash('Статья обновлена', 'success')
        return redirect(url_for('dashboard'))

    return render_template('article-create.html',
                           form=form,
                           header='Редактирование')
예제 #10
0
def article_new():
    form = ArticleForm(request.form)
    if form.validate():
        try:
            db.save(Article(current_user, form.title.data, form.content.data, form.plain_text.data))
        except AssertionError, err:
            current_app.logger.error(err)
        return redirect(url_for('Common.index'))
예제 #11
0
def home():
    try:
        storage.load()
    except IOError:
        pass
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        article = Articles(form.article_title.data, form.article_body.data)
        storage.articles.append(article)
        storage.dump()
    return render_template('base.html', form=form, storage=storage)
예제 #12
0
def add_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        sql = sqlpuzzle.insert_into('article').values({
            'title': form.title.data,
            'text': form.text.data,
        })
        cur = get_db().cursor()
        cur.execute(str(sql))
        return redirect(url_for('article_page.articles'))
    return render_template('article/add.html', form=form)
예제 #13
0
def new_article():

    form = ArticleForm(request.form)

    if request.method == 'POST' and form.validate():
        article_info = Article_Info()
        save_changes(article_info, form, new=True)
        flash('Article added successfully!')
        return redirect('/')

    return render_template('new_article.html', form=form)
예제 #14
0
def article_edit(slug):
	""" Render edit article form by <slug> or update data from `POST` """
	from models import Article, Tag, db
	from forms import ArticleForm

	article = Article.by_slug(slug=slug).first_or_404()
	form = ArticleForm()

	if request.method != 'POST':
		# init form data from object
		form.title.data = article.title
		form.slug.data = article.slug
		form.description.data = article.description
		form.content.data = article.content
		tags = [t.title for t in article.tags]
		for t in tags:
			if form.tags.data:
				form.tags.data += ", " + t
			else:
				form.tags.data = t
		form.pub_date.data = article.pub_date.strftime("%Y-%m-%d %H:%M:%S")
		form.upd_date.data = article.upd_date.strftime("%Y-%m-%d %H:%M:%S")
	else:
		if form.validate():
			article.title = form.title.data
			article.slug = form.slug.data
			article.description = form.description.data
			article.content = form.content.data
			article.pub_date = datetime.strptime(form.pub_date.data, '%Y-%m-%d %H:%M:%S')

			# autonow if empty or error
			try:
				upd_datetime = datetime.strptime(form.upd_date.data, '%Y-%m-%d %H:%M:%S')
			except Exception:
				article.upd_date = datetime.now()

			article.tags = []
			tags_raw = form.tags.data.split(',')
			for t in tags_raw:
				t = t.strip()

				# Get or create
				try:
					article.tags += [Tag.query.filter(Tag.title == t)[0]]
				except Exception:
					article.tags += [Tag(t)]

			db.session.commit()

			flash("Article updated success.", 'success')
			return redirect(url_for('articles_view', slug=form.slug.data))

	return render_template('articles/edit.html', **locals())
예제 #15
0
파일: app.py 프로젝트: oldvirginmary/3ch
def new_article():
    from forms import ArticleForm
    from models import Article

    if request.method == 'POST':
        form = ArticleForm(request.form)

        if form.validate():
            article = Article(**form.data)
            db.session.add(article)
            db.session.commit()

    return render_template('new_article.html')
예제 #16
0
def edit(id):
    article = Article.query.filter_by(id=id).first()
    form = ArticleForm(obj=article)

    if request.method == 'POST':
        if form.validate() == True:
            article.titre = form.titre.data
            article.cont = form.cont.data
            article.category.name = form.category.data
            db.session.commit()
            return redirect(url_for('affiche'))

    return render_template('edit.html', form=form, article=article)
예제 #17
0
def edit(id):

    qry = db_session.query(Article_Info).filter(Article_Info.id == id)
    article_info = qry.first()

    if article_info:
        form = ArticleForm(formdata=request.form, obj=article_info)
        if request.method == 'POST' and form.validate():
            save_changes(article_info, form)
            flash('Article information updated successfully!')
            return redirect('/')
        return render_template('edit_article.html', form=form)
    else:
        return 'Error loading #{id}'.format(id=id)
예제 #18
0
def add_article():
    form = ArticleForm(request.form)  # 实例化wtforms的ArticleForm 获取请求值然后进行处理
    if request.method == 'POST' and form.validate():
        # 如果用户提交表单,并且通过验证
        title = form.title.data
        content = form.content.data
        author = session.get('username')
        create_date = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        db = MysqlUtil()
        sql = 'insert into articles(title,content,author,create_date) values ("%s","%s","%s","%s")' % (title, content, author, create_date)
        db.insert(sql)
        flash('创建成功', 'success') #闪存信息 返回给前端的get_flashed_messages  --> _messages.html
        return redirect(url_for('article.dashboard')) # 添加成功 跳转回控制台展示
    return render_template('add_article.html', form=form) #带着参数渲染模板
예제 #19
0
def index():
    from forms import ArticleForm
    from models import Article

    if request.method == 'POST':
        print(request.form)
        form = ArticleForm(request.form)

        if form.validate():
            article = Article(**form.data)
            db.session.add(article)
            db.session.commit()

    articles = Article.query.all()
    return render_template('main.txt', articles=articles)
예제 #20
0
def add_article():
    form = ArticleForm(request.form)  # 实例化ArticleForm表单类
    if request.method == 'POST' and form.validate():  # 如果用户提交表单,并且表单验证通过
        # 获取表单字段内容
        title = form.title.data
        content = form.content.data
        author = session['username']
        create_date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        db = MysqlUtil()  # 实例化数据库操作类
        sql = "INSERT INTO articles(title,content,,author,create_date) VALUES ('%s','%s','%s','%s')" % (
            title, content, author, create_date)  # 插入数据的SQL语句
        db.insert(sql)
        flash('创建成功', 'success')  # 闪存信息
        return redirect(url_for('dashboard'))  # 跳转到控制台
    return render_template('add_article.html', form=form)  # 渲染模板
예제 #21
0
def delete(id):

    qry = db_session.query(Article_Info).filter(Article_Info.id == id)
    article_info = qry.first()

    if article_info:
        form = ArticleForm(formdata=request.form, obj=article_info)
        if request.method == 'POST' and form.validate():
            db_session.delete(article_info)
            db_session.commit()
            flash('Article deleted successfully!')
            return redirect('/')
        return render_template('delete_article.html', form=form)
    else:
        return 'Error deleting #{id}'.format(id=id)
예제 #22
0
def article_create():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        cur = mysql.connection.cursor()
        mysql.connection.autocommit(on=True)
        query = "INSERT INTO articles(title, body, author) VALUES(%s, %s, %s)"
        params = (form.title.data, form.body.data, session['username'])
        cur.execute(query, params)
        cur.close()
        flash('Статья добавлена', 'success')
        return redirect(url_for('dashboard'))

    return render_template('article-create.html',
                           form=form,
                           header='Добавление')
예제 #23
0
def add():

    form = ArticleForm()
    if request.method == 'POST':

        if form.validate() == True:

            article = Article()
            article.titre = form.titre.data
            article.cont = form.cont.data
            article.category = form.category.data
            db.session.add(article)

            db.session.commit()
            return redirect(url_for('affiche'))

    return render_template('add.html', form=form)
예제 #24
0
def edit_article(id):

    # Create cursor
    cur = mysql.connection.cursor()

    # Get article
    cur.execute("SELECT * FROM articles WHERE id = %s", [id])
    article = cur.fetchone()

    # Close connection
    cur.close()

    # Get form
    form = ArticleForm(request.form)

    # Populate article form fields
    form.title.data = article['title']
    form.body.data = article['body']

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']

        # Create cursor
        cur = mysql.connection.cursor()

        # Update article
        result = cur.execute(
            "UPDATE articles SET title = %s, body = %s WHERE id = %s AND author = %s AND user_id = %s",
            (title, body, id, session['username'], session['user_id']))
        mysql.connection.commit()

        # Close connection
        cur.close()

        # Let user know of success/failure
        if result == 0:
            flash('Article left as is', 'info')
        else:
            flash('Article updated', 'success')

        # Return corresponding page
        return redirect(url_for('dashboard'))

    return render_template('edit_article.html', form=form)
예제 #25
0
def edit_article(id):
    # Create Cursor
    c, conn = connection()

    # Get article by id
    result = c.execute("SELECT * FROM articles WHERE id = %s", [id])

    article = c.fetchone()

    # Get form
    form = ArticleForm(request.form)

    # Populate article form fields
    form.title.data = article['title']
    form.body.data = article['body']

    # get author so you can verify only current author can edit post. Remember to include how solved in readme
    current_author = article['author']
    if session['username'] == current_author:
        flash('Article author matches current user you may edit', 'success')
    else:
        flash('Cannot edit must be appropriate author', 'danger')
        return redirect(url_for('dashboard'))

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']

        # Execute
        c.execute("UPDATE articles SET title=%s, body=%s WHERE id = %s",
                  (title, body, id))

        # Commit to DB
        conn.commit()

        # Close connection
        c.close()
        conn.close()

        flash('Article Updated', 'success')

        return redirect(url_for('dashboard'))

    return render_template('edit_article.html', form=form)
예제 #26
0
def add_article():

    # Formulär för att skriva in en ny artikel.

    form = ArticleForm(request.form)
    if form.validate():
        rubrik = form.rubrik.data.strip()
        ingress = form.ingress.data.strip()
        text = form.text.data.strip()
        datum = form.datum.data
        undkat_id = form.undkat_id.data
        p_nr = form.p_nr.data

        # Lägger in ny artikel till databasen.

        cursor = mddb.cursor()
        new_article = """INSERT INTO artikel (rubrik, ingress, text, datum, undkat_id) 
                        VALUES (%s, %s, %s, %s, %s)"""
        cursor.execute(new_article, (rubrik, ingress, text, datum, undkat_id))

        # Hämtar artikel-ID från den senast inlagda artikeln.

        get_artid = """SELECT art_id FROM artikel ORDER BY art_id DESC LIMIT 1;"""
        cursor.execute(get_artid)
        latest_article = cursor.fetchone()
        art_id = latest_article[0]

        # Lägger till artikel-ID från den senast inlagda artikeln i sambandstabellen.

        add_artid = """INSERT INTO skriven_av (art_id, journalist) VALUES (%s, %s)"""
        cursor.execute(add_artid, (int(art_id), p_nr))

        mddb.commit()
        cursor.close()
        return redirect(url_for("index"))

    navbar = queries_function.get_nav_content()
    art_no = queries_function.get_quantities()

    return render_template("add_article.html",
                           title="Skriv artikel",
                           form=form,
                           navbar=navbar,
                           art_no=art_no)
예제 #27
0
def create():
    data = request.get_json()
    
    form = ArticleForm(**data)
    if form.validate():
        form_data = form.data
        form_data['ip'] = request.remote_addr
        article = g.user.create_article(**form_data)

        alert = dict(
            type='success',
            messages=_("Your article has been submitted successfully. The staff will approve it soon. Thank you for your contribution")
        )

        redirect = url_for("site.page", name="home")
        
        return jsonify({"data": article.json_data(), "alert": alert, "redirect": redirect})
    else:
        return json_error(type="VALIDATION_FAILED", messages=form.errors)
예제 #28
0
def add():
	if not session.get('logged_in'):
		abort(404)
	else:
		form = ArticleForm()		
		if request.method == 'POST':
			if form.validate() == False:				
				return render_template('add.html', form=form)
			else:
				d = datetime.now().strftime('%d-%m-%Y')
				g.db = connect_db()
				cur = g.db.execute('INSERT INTO fblog (title, content, date, status) VALUES (?, ?, ?, 1)', [form.title.data, form.content.data, d])
				g.db.commit()
				g.db.close()
				flash('Article added successfully')
				return redirect( url_for('admin') )

		elif request.method == 'GET':
			return render_template('add.html', form=form)
예제 #29
0
파일: tinycms.py 프로젝트: helljump/tinycms
def edit_article(post_id=None):
    form = ArticleForm()
    db = get_db()
    if request.method == 'POST' and form.validate():
        slug = slugify(form.title.data, max_length=50)
        data = [
            slug,
            form.title.data,
            form.intro.data,
            form.text.data,
            form.date.data,
            form.published.data,
            form.description.data,
            form.keywords.data
        ]
        if form.pk.data is not None:
            data.append(form.pk.data)
            db.execute("update articles set slug=?, title=?, intro=?, text=?, date=?, published=?, "
                       "description=?, keywords=? where id=?", data)
            flash('Статья обновлена', 'success')
            return redirect(url_for('edit_article', post_id=form.pk.data))
        else:
            cur = db.execute("insert into articles (slug, title, intro, text, date, published, "
                             "description, keywords) values(?,?,?,?,?,?,?,?)", data)
            flash('Статья добавлена', 'success')
            return redirect(url_for('edit_article', post_id=cur.lastrowid))
    if request.method == 'GET':
        if post_id is not None:
            cur = db.execute("select * from articles where id=?", [post_id])
            article = cur.fetchone()
            if article is None:
                abort(404)
            app.logger.debug("edit article %i", article['id'])
            form.pk.data = article['id']
            form.title.data = article['title']
            form.intro.data = article['intro']
            form.text.data = article['text']
            form.date.data = article['date']
            form.published.data = article['published']
            form.description.data = article['description']
            form.keywords.data = article['keywords']
    return render_template('edit.html', form=form)
예제 #30
0
def articles_add():
	""" Add new article or render form """
	from models import Article, Tag, db
	from forms import ArticleForm

	form = ArticleForm()

	form.pub_date.data = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
	form.upd_date.data = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

	if request.method == 'POST' and form.validate():
		tags = []
		if form.tags.data:
			tags_raw = form.tags.data.split(',')
			for t in tags_raw:
				t = t.strip()
				try:
					tags += [Tag.query.filter(Tag.title==t)[0]]
				except Exception:
					tags += [Tag(t)]

		try:
			pub_date = datetime.strptime(form.pub_date.data, '%Y-%m-%d %H:%M:%S')
		except ValueError:
			flash("Can't parse date.", 'error')
		else:
			article = Article(
				form.title.data,
				form.description.data,
				form.content.data,
				tags=tags,
				slug=form.slug.data,
				pub_date=pub_date,
			)

			db.session.add(article)
			db.session.commit()

			flash("Article added.", 'success')
			return redirect(url_for('articles_view', slug=article.slug))

	return render_template('articles/add.html', **locals())
예제 #31
0
def add():
    if not session.get('logged_in'):
        abort(404)
    else:
        form = ArticleForm()
        if request.method == 'POST':
            if form.validate() == False:
                return render_template('add.html', form=form)
            else:
                d = datetime.now().strftime('%d-%m-%Y')
                g.db = connect_db()
                cur = g.db.execute(
                    'INSERT INTO fblog (title, content, date, status) VALUES (?, ?, ?, 1)',
                    [form.title.data, form.content.data, d])
                g.db.commit()
                g.db.close()
                flash('Article added successfully')
                return redirect(url_for('admin'))

        elif request.method == 'GET':
            return render_template('add.html', form=form)
예제 #32
0
def index():
    from models import Article
    from forms import ArticleForm

    if request.method == 'POST':
        form = ArticleForm(request.form)

        if form.validate():
            data_a = Article(**form.data)
            db.session.add(data_a)
            db.session.commit()
            return redirect(url_for('index'))
        else:
            return 'Form is not valid! Post was not created.\n  ' + str(
                form.errors)

    if request.method == 'GET':
        articles = Article.query.all()
        return render_template('index.html',
                               articles=articles,
                               date_time=date.today())
예제 #33
0
파일: tinycms.py 프로젝트: helljump/tinycms
def edit_article(post_id=None):
    form = ArticleForm()
    db = get_db()
    if request.method == 'POST' and form.validate():
        slug = slugify(form.title.data, max_length=50)
        data = [
            slug, form.title.data, form.intro.data, form.text.data,
            form.date.data, form.published.data, form.description.data,
            form.keywords.data
        ]
        if form.pk.data is not None:
            data.append(form.pk.data)
            db.execute(
                "update articles set slug=?, title=?, intro=?, text=?, date=?, published=?, "
                "description=?, keywords=? where id=?", data)
            flash('Статья обновлена', 'success')
            return redirect(url_for('edit_article', post_id=form.pk.data))
        else:
            cur = db.execute(
                "insert into articles (slug, title, intro, text, date, published, "
                "description, keywords) values(?,?,?,?,?,?,?,?)", data)
            flash('Статья добавлена', 'success')
            return redirect(url_for('edit_article', post_id=cur.lastrowid))
    if request.method == 'GET':
        if post_id is not None:
            cur = db.execute("select * from articles where id=?", [post_id])
            article = cur.fetchone()
            if article is None:
                abort(404)
            app.logger.debug("edit article %i", article['id'])
            form.pk.data = article['id']
            form.title.data = article['title']
            form.intro.data = article['intro']
            form.text.data = article['text']
            form.date.data = article['date']
            form.published.data = article['published']
            form.description.data = article['description']
            form.keywords.data = article['keywords']
    return render_template('edit.html', form=form)
예제 #34
0
def edit_article(id):
    db = MysqlUtil()
    fetch_sql = "SELECT * FROM articles WHERE id = '%s' and author = '%s'" % (id,session['username']) # 根据笔记id查找笔记信息
    article = db.fetchone(fetch_sql) #查找一条记录
    if not article:
        flash('ID错误','danger') # 闪存信息
        return redirect(url_for('article.dashboard'))

    # 获取表单
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        title = request.form.get('title')
        content = request.form.get('content')
        update_sql = 'update articles set title = "%s", content = "%s" where id = "%s" and author = "%s"' % (title,content,id,session.get('username'))
        db = MysqlUtil()
        db.update(update_sql) #更新到数据库
        flash('更改成功', 'success')
        return redirect(url_for('article.dashboard'))

    form.title.data = article['title']
    form.content.data = article['content']
    return render_template('edit_article.html', form=form)
예제 #35
0
파일: app.py 프로젝트: aditya1819/flaskblog
def edit_article(id):

    cur = mysql.connection.cursor()
    cur.execute("USE flaskblog")
    
    temp = cur.execute("SELECT * FROM articles WHERE id = %s", [id])
    article = cur.fetchone()
    
    org_auth = article['author']
    if org_auth != session['username']:
        cur.close()
        flash('Access Denied ! Invaild User','danger')
        return redirect(url_for('dashboard'))        
    # result = cur.execute("SELECT * FROM articles WHERE id = %s", [id])

    form = ArticleForm(request.form)
    
    #populate form
    form.title.data = article['title']
    form.body.data = article['body']

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']

        # create cursor
        cur = mysql.connection.cursor()

        cur.execute("USE flaskblog")

        cur.execute("UPDATE articles SET title=%s, body=%s WHERE id=%s", (title, body, id))
        mysql.connection.commit()
        cur.close()
        flash('Article Updated !', 'success')

        return redirect(url_for('dashboard'))

    return render_template('edit_article.html', form=form)
예제 #36
0
def update(blog_id):
	if not session.get('logged_in'):
		abort(404)
	else:
		form = ArticleForm()		
		if request.method == 'POST':
			if form.validate() == False:				
				return render_template('add.html', form=form)
			else:
				
				g.db = connect_db()
				cur = g.db.execute('UPDATE fblog SET title =' + form.title.data + ', content =' + form.content.data + ' WHERE blog_id=' + str(blog_id))
				g.db.commit()
				g.db.close()
				flash('Article updated successfully')
				return redirect( url_for('admin') )

		elif request.method == 'GET':			
			g.db = connect_db()
			article = query_db('SELECT blog_id, title, content FROM fblog WHERE blog_id = ?', [blog_id], one=True)
			form.title.data = article['title']
			form.content.data = article['content']			
			return render_template('edit.html', form=form, article=article)
예제 #37
0
def update():
    article = g.article
    user = g.user
    data = request.get_json()
    form = ArticleForm(**data)
    if form.validate():
        form_data = form.data
        data = form_data
        data['ip'] = request.remote_addr
        data['user'] = user

        # Make sure that users cant change article status
        try:
            if not user.has_permission('approve_article'):
                del data['is_active']
        except Exception:
            pass

        article.update(**data)
        cache.update_article(article.id, article)
        return jsonify({"data": article.json_data()})
    else:
        return json_error(type="VALIDATION_FAILED", messages=form.errors)
예제 #38
0
def update():
    article = g.article
    user = g.user
    data = request.get_json()
    form = ArticleForm(**data)
    if form.validate():
        form_data = form.data
        data = form_data
        data['ip'] = request.remote_addr
        data['user'] = user

        # Make sure that users cant change article status
        try:
            if not user.has_permission('approve_article'):
                del data['is_active']
        except Exception:
            pass

        article.update(**data)
        cache.update_article(article.id, article)
        return jsonify({"data": article.json_data()})
    else:
        return json_error(type="VALIDATION_FAILED", messages=form.errors)
def edit_article(id):
    cur = mysql.connection.cursor()
    cur.execute("SELECT * FROM articles WHERE id=%s", [id])
    article = cur.fetchone()

    form = ArticleForm(request.form)

    if request.method == 'POST' and form.validate():
        title = request.form['title']
        body = request.form['body']

        cur = mysql.connection.cursor()
        cur.execute("UPDATE articles SET title=%s, body=%s WHERE id=%s",
                    [title, body, id])
        mysql.connection.commit()
        cur.close()

        flash('Article edited successfully', 'success')
        return redirect(url_for('blog.dashboard'))

    form.title.data = article['title']
    form.body.data = article['body']
    return render_template('edit_article.html', form=form, id=article['id'])
예제 #40
0
def create():
    data = request.get_json()

    form = ArticleForm(**data)
    if form.validate():
        form_data = form.data
        form_data['ip'] = request.remote_addr
        article = g.user.create_article(**form_data)

        alert = dict(
            type='success',
            messages=
            _("Your article has been submitted successfully. The staff will approve it soon. Thank you for your contribution"
              ))

        redirect = url_for("site.page", name="home")

        return jsonify({
            "data": article.json_data(),
            "alert": alert,
            "redirect": redirect
        })
    else:
        return json_error(type="VALIDATION_FAILED", messages=form.errors)