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)
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)
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)
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)
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)
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)