示例#1
0
def new_art():
	db.connect()
	# logging.error()
	art = ArticleForm(request.form)
	# for a in art:
		# logging.error(a)
	
	if request.method == 'POST':
		if art.validate():
			#存入数据库
			db.insert_one(table_name = 'arts',
				art_tuple = (str(uuid.uuid1()),
				request.form['title'],
				request.form['author'],
				request.form['content'],
				datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
			# db.insert_one(table_name = 'arts',art_tuple = ('art.title',"art.author","art.content"))
			logging.error('new art added')

	db_query_arts = db.find_all('arts')
	arts = []
	for db_query_art in db_query_arts:
		arts.append(Art(db_query_art[0],db_query_art[1],db_query_art[2],db_query_art[3],db_query_art[4]))

	arts.reverse()
	return render_template('new_art.html',form = art,arts = arts)
示例#2
0
def edit_article(id):
    cur = mysql.connection.cursor()
    result = cur.execute('SELECT * FROM articles WHERE id=%s', [id])
    article = cur.fetchone()

    form = ArticleForm(request.form)

    # populating 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']

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

        app.logger.info(title)

        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', name='Article', form=form)
示例#3
0
def add_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data

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

        cur.execute(
            'INSERT INTO articles(title, body, author) VALUES (%s, %s, %s)',
            (title, body, session['username']))
        mysql.connection.commit()
        cur.close()
        flash('Article created', 'success')
        return redirect(url_for('dashboard'))

    return render_template('add_article.html', name='Article', form=form)
示例#4
0
def update_article(slug):
    article = Article.query.filter_by(slug=slug).first_or_404()
    user_id = request.cookies.get('owner_id')
    if not article.is_owner(user_id):
        abort(401)

    if request.method == 'GET':
        form = ArticleForm(obj=article)
        return render_template('update_article.html', form=form)
    else:
        form = ArticleForm(request.form)
        if request.method == 'POST' and form.validate():
            article.title = form.title.data
            article.signature = form.signature.data
            article.body = form.body.data
            db.session.commit()
            return redirect(slug)
        return render_template('update_article.html', form=form)
示例#5
0
def articleEdit(aid):
    article = Article.query.get(aid)
    form = ArticleForm(request.form)
    tags = [item.tag.name for item in article.tags]

    if request.method == 'POST' and form.validate():
        article.title = form.title.data
        article.content = form.content.data
        article.category = Category.query.filter_by(name=form.category.data).first()

        updateTags = form.tags.data.split(',')

        # 将新标签写入数据库,并为文章添加新标签
        newTags = form.newTags.data
        if newTags:
            for t in newTags.split(','):
                if not Tag.exist(t):
                    tag = Tag(name=t.strip())
                    db.session.add(tag)
                    article.addTag(tag)

        # 对文章已有标签检测是否有更改
        tagsNeedDel = list(set(tags).difference(set(updateTags)))  # 需要移除的 tag
        tagsNeedAdd = list(set(updateTags).difference(set(tags)))  # 需要添加的 tag

        # 添加
        for t in tagsNeedAdd:
            tag = Tag.query.filter_by(name=t.strip()).first()
            article.addTag(tag)

        # 删除
        for t in tagsNeedDel:
            tag = Tag.query.filter_by(name=t.strip()).first()
            article.delTag(tag)

        db.session.commit()
        return redirect(url_for('admin.articles'))
    return render_template('admin/articleWrite.html', form=form, article=article, tags=tags)
示例#6
0
def create_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        dt = datetime.now()
        slug = slugify('{}-{}-{}-{}-{}-{}'.format(dt.month, dt.day, dt.hour,
                                                  dt.minute, dt.second,
                                                  form.title.data),
                       max_length=255,
                       save_order=True)
        owner_id = request.cookies.get('owner_id')
        if owner_id == 'undefined' or owner_id is None:
            owner_id = str(uuid.uuid4())
        article = Article(title=form.title.data,
                          signature=form.signature.data,
                          body=form.body.data,
                          slug=slug,
                          owner_id=owner_id)
        db.session.add(article)
        db.session.commit()
        response = current_app.make_response(redirect(slug))
        response.set_cookie('owner_id', owner_id)
        return response
    return render_template('create_article.html', form=form)