def bookmark_add(): error = {} bookmark = {} user = auth.get_logged_in_user() if request.method == 'POST': if not request.form['url']: error['url'] = u'书签的网址不能为空' if not request.form['url'].startswith('http://') and not request.form['url'].startswith('https://'): request.form['url'] = ''.join(['http://', request.form['url']]) if not error: try: bookmark = Bookmark.select().where(Bookmark.user == user, Bookmark.url == request.form['url'] ).get() except Bookmark.DoesNotExist: try: db.database.set_autocommit(False) bookmark = Bookmark.create( user=user, url=request.form['url'], title=request.form['title'] ) bookmark.fetch_image() bookmark.save() tagnames = re.split('\s+', request.form['tags'].strip()) # marksure request.form['tags'] not a empty string if tagnames[0]: for tagname in tagnames: if not Tag.select().where(Tag.user == user, Tag.name == tagname ).exists(): tag = Tag.create(user=user, name=tagname) tag.save() relationship = Relationship.create( user=user, tag=tag, bookmark=bookmark) relationship.save() except Exception as e: db.database.rollback() flash(u'对不起,服务器太累了,刚罢工了一会儿', 'error') else: try: db.database.commit() except Exception as e: db.database.rollback() flash(u'对不起,服务器太累了,刚罢工了一会儿', 'error') finally: db.database.set_autocommit(True) if not get_flashed_messages(): flash(u'你已经成功添加一个书签', 'success') return redirect(url_for('bookmark')) else: flash(Markup(u'书签已经存在,也许你想要<a href="' + url_for('bookmark_edit', id=bookmark.id) + u'">编辑</a>此书签'), 'info') return render_template('bookmark_add.html', error=error, form=request.form, user=user, bookmark=bookmark)
def index(): user = auth.get_logged_in_user() if user: return redirect(url_for('bookmark')) else: # random pick 30 bookmarks, If Database is MySQL, please use fn.Rand() # fn come from, from peewee import * bookmarks = Bookmark.select().order_by(fn.Random()).limit(PERPAGE) return object_list('bookmark_list.html', bookmarks, 'bookmarks', paginate_by=PERPAGE)