def new_post(): form = PostForm() if form.validate_on_submit(): if form.picture.data: picture_file = save_picture(form.picture.data) post = Post(title=form.title.data, content=form.content.data, content_md=form.content_md.data, author=current_user, image_file=picture_file) else: post = Post(title=form.title.data, content=form.content.data, content_md=form.content_md.data, author=current_user) db.session.add(post) current_user.post_title_saved = '' current_user.post_html_saved = '' current_user.post_md_saved = '' db.session.commit() flash("Post created!", 'success') return redirect(url_for('main.home')) return render_template("create_post.html", title="New Post", form=form, legend="New Post")
def index(): form = PostForm() if current_user.can( Permission.Write_article) and form.validate_on_submit(): post = Post(body=form.body.data, author=current_user._get_current_object()) db.session.add(post) db.session.commit() return redirect(url_for('main.index')) #为了显示某页中的记录, 要把 all() 换成 Flask-SQLAlchemy 提供的 paginate() 方法。 #页数是 paginate() 方法的第一个参数,也是唯一必需的参数。可选参数 per_page 用来指定每页显示的记录数量; #如果没有指定,则默认显示 20 个记录。 #另一个可选参数为 error_out,当其设为 True 时(默认值),如果请求的页数超出了范围,则会返回 404 错误; #如果设为 False,页数超出范围时会返回一个空列表。 show_followed = False page = request.args.get('page', 1, type=int) if current_user.is_authenticated: show_followed = bool(request.cookies.get('show_followed', '')) if show_followed: query = current_user.followed_posts else: query = Post.query pagination = query.order_by(Post.timestamp.desc()).paginate( page, per_page=current_app.config['FLASK_POSTS_PER_PAGE'], error_out=False) posts = pagination.items return render_template('main/index.html', show_followed=show_followed, form=form, posts=posts, pagination=pagination)
def new_event(): form = EventForm() if form.validate_on_submit(): print(form.youtube.data) url = form.youtube.data.replace("watch?v=", "embed/") if form.youtube.data == "": url = None if form.picture.data: image_file = save_picture(form.picture.data) if not form.picture.data: image_file = "" event = Event(event_name=form.title.data, event_time=form.time.data, location=form.location.data, event_date=form.event_date.data, last_registration=form.last_registration.data, max_participants=form.max_participants.data) db.session.add(event) db.session.flush() post = Post(title=form.title.data, content=form.content.data, youtube=url, author=current_user, image_file=image_file, event_id=event.id) db.session.add(post) db.session.commit() return redirect(url_for('posts.home')) user_info = User_info.query.filter_by(id=current_user.id).first() return render_template('new_event.html', form=form, user_info=user_info)
def new_post(): form = PostForm() if form.validate_on_submit(): url = form.youtube.data.replace("watch?v=", "embed/") if form.youtube.data == "": url = None if form.picture.data: image_file = save_picture(form.picture.data) if not form.picture.data: image_file = "" post = Post(title=form.title.data, content=form.content.data, youtube=url, author=current_user, image_file=image_file) db.session.add(post) db.session.commit() return redirect(url_for('posts.home')) user_info = User_info.query.filter_by(id=current_user.id).first() get_warnings = AttendingEvent.query.filter( AttendingEvent.warning == 'warning').filter( AttendingEvent.user_id == current_user.id).all() user_warning = [] for warning in get_warnings: event = Post.query.filter(Post.event_id == warning.event_id).first() user_warning.append(event) return render_template('create_post.html', form=form, user_info=user_info, user_warning=user_warning)
def index(): form = PostForm() if form.validate_on_submit(): language = guess_language(form.post.data) if language == 'UNKNOWN' or len(language) > 5: language = '' post = Post(body=form.post.data, author=current_user, language=language) db.session.add(post) db.session.commit() flash(_('Your post is now live!')) return redirect(url_for('main.index')) page = request.args.get('page', 1, type=int) posts = current_user.followed_posts().paginate( page, current_app.config['POSTS_PER_PAGE'], False) next_url = url_for('main.index', page=posts.next_num) \ if posts.has_next else None prev_url = url_for('main.index', page=posts.prev_num) \ if posts.has_prev else None return render_template('index.html', title=_('Home'), form=form, posts=posts.items, next_url=next_url, prev_url=prev_url)
def create_post(): '''Create new post route''' form = CreatePostForm(category='general') profile_image = url_for('static', filename='images/{}'.format( current_user.image_file)) if form.validate_on_submit(): try: post = Post(title=form.title.data, category=form.category.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() db.session.remove() flash('Post created successfully', 'success') return redirect(url_for('forum.create_post')) except IntegrityError: logger.error('create_post IntegrityError error', exc_info=True) db.session.rollback() flash('Post not successful', 'fail') return redirect(url_for('forum.forum_route')) content = { 'image_file': profile_image, 'page_title': 'New', 'form': form, 'post': None } return render_template('forum/create_post.html', **content)
def index(): form = PostForm() if form.validate_on_submit(): language = guess_language(form.post.data) if language == 'UNKNOWN' or len(language) > 5: language = '' post = Post(body=form.post.data, author=current_user, language=language) db.session.add(post) db.session.commit() flash(_('Your post is now live!')) return redirect(url_for('main.index')) # pagination page = request.args.get('page', 1, type=int) posts = current_user.followed_posts().paginate( page, current_app.config['POSTS_PER_PAGE'], False) next_url = url_for('main.index', page=posts.next_num) if posts.has_next else None prev_url = url_for('main.index', page=posts.prev_num) if posts.has_prev else None """ render_template() invokes the Jinja2 template engine that comes bundled with the Flask framework, substituting {{ ... }} blocks with the corresponding values, given by the arguments provided in the render_template() call.""" return render_template('index.html', title=_('Home'), form=form, posts=posts.items, next_url=next_url, prev_url=prev_url)
def new_post(): form = PostForm() if form.validate_on_submit(): post=Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Your form has been submitted', 'success') return redirect(url_for('users.user_posts', username=current_user.username)) return render_template('create_post.html', title='New Post', form=form, legend='New Post')
def test_check_fields(self): post = Post() post.title = 'test' post.text = 'text_test' self.assertEqual(post.title, 'test') self.assertNotEqual(post.title, 'test1') self.assertTrue(post.text, 'text_test') self.assertNotEqual(post.text, 'Python is cool!!!')
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Your post has been successfully added', 'success') return redirect(url_for('main.home')) return render_template('create_post.html', title="News Post", form = form, legend='New Post')
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, url=form.url.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Váša otázka bola vytvorená a zverejnená', 'success') return redirect(url_for('main.home')) return render_template('create_post.html', title='Opýtať sa otázku', form=form, legend='Opýtajte sa otázku')
def post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() return redirect(url_for('home')) return render_template("post.html", form=form)
def tracking(): form = ItemForm() if form.validate_on_submit(): input_item = Post(material=form.material.data.strip(), count=form.count.data, value=locale.currency(prices[form.material.data.strip()] * int(form.count.data), grouping=True), author=current_user) db.session.add(input_item) db.session.commit() flash('You have inputted a new item to be recycled!') return redirect(url_for('tracking')) return render_template("tracking.html", title='Tracking', form=form)
def test_follow_posts(self): # create four users u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') u3 = User(username='******', email='*****@*****.**') u4 = User(username='******', email='*****@*****.**') db.session.add_all([u1, u2, u3, u4]) now = datetime.utcnow() p1 = Post(body='post from john', author=u1, timestamp=now + timedelta(seconds=1)) p2 = Post(body='post from john', author=u2, timestamp=now + timedelta(seconds=4)) p3 = Post(body='post from john', author=u3, timestamp=now + timedelta(seconds=3)) p4 = Post(body='post from john', author=u4, timestamp=now + timedelta(seconds=2)) db.session.add_all([p1, p2, p3, p4]) db.session.commit() # setup the followers u1.follow(u2) u1.follow(u4) u2.follow(u3) u3.follow(u4) # check the followed posts f1 = u1.followed_posts().all() f2 = u2.followed_posts().all() f3 = u3.followed_posts().all() f4 = u4.followed_posts().all() self.assertEqual(f1, [p2, p4, p1]) self.assertEqual(f2, [p2, p3]) self.assertEqual(f3, [p3, p4]) self.assertEqual(f4, [p4]) af4 = u4.followed_posts_sql().fetchall() self.assertEqual(f4[0].user_id, af4[0].user_id)
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, user_created=current_user.id).save() current_user.posts.append(post) current_user.save() flash('Your post has been created successfully', 'success') return redirect(url_for('home')) return render_template('new_post.html', form=form, legend='Add new post')
def qrscan(): data = request.json['data'].split(',') for item in data: stripped = str(item)[1:-1].split(' ') count = stripped[1] material = stripped[0] input_item = Post(material=material, count=count, value=locale.currency(prices[material] * int(count), grouping=True), author=current_user) db.session.add(input_item) db.session.commit() flash('You have inputted a new item to be recycled!') return redirect(url_for('tracking'))
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Conteúdo publicado com sucesso!', 'success') return redirect(url_for('main.index')) return render_template('posting.html', title='Novas Postagens', form=form, legend='Nova Postagem')
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash("Your post has been created!", "success") return redirect(url_for("main.home")) return render_template("create_post.html", title="New Post", form=form)
def create(): form = PostForm() if form.validate_on_submit(): postData = Post(post=form.post.data, user_id=current_user.id) db.session.add(postData) db.session.commit() return redirect(url_for('posts')) else: print(form.errors) return render_template('create_post.html', title='Create Post', form=form)
def test_follow_posts(self): # create four users u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') u3 = User(username='******', email='*****@*****.**') u4 = User(username='******', email='*****@*****.**') db.session.add_all([u1, u2, u3, u4]) # create four posts now = datetime.utcnow() p1 = Post(body="post from john", author=u1, timestamp=now + timedelta(seconds=1)) p2 = Post(body="post from susan", author=u2, timestamp=now + timedelta(seconds=4)) p3 = Post(body="post from mary", author=u3, timestamp=now + timedelta(seconds=3)) p4 = Post(body="post from david", author=u4, timestamp=now + timedelta(seconds=2)) db.session.add_all([p1, p2, p3, p4]) db.session.commit() # setup the followers u1.follow(u2) # john follows susan u1.follow(u4) # john follows david u2.follow(u3) # susan follows mary u3.follow(u4) # mary follows david db.session.commit() # check the followed posts of each user f1 = u1.followed_posts().all() f2 = u2.followed_posts().all() f3 = u3.followed_posts().all() f4 = u4.followed_posts().all() self.assertEqual(f1, [p2, p4, p1]) self.assertEqual(f2, [p2, p3]) self.assertEqual(f3, [p3, p4]) self.assertEqual(f4, [p4])
def post(): post_form = PostForm() if post_form.validate_on_submit(): post = Post( title=post_form.title.data, content=post_form.content.data, user_id=current_user.id ) db.session.add(post) db.session.commit() return redirect(url_for('home')) return render_template('post.html', title='Post', form=post_form)
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, category=dict(form.category.choices).get( form.category.data), author=current_user) db.session.add(post) db.session.commit() flash('Your post has been created!', 'success') return redirect(url_for('main.index')) return render_template('posts/post_form.html', title='New Post', form=form)
def feed_back(): form = PostForm() if form.validate_on_submit(): post = Post(body=form.post.data, author=current_user) db.session.add(post) db.session.commit() flash('Your post is now live!') return redirect(url_for('index')) posts = current_user.followed_posts().all() return render_template("feed_back.html", title='Feed Back', form=form, posts=posts)
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, content=form.content.data, author=current_user) db.session.add(post) db.session.commit() flash('Your post has been created', 'is-success') return redirect(url_for('posts.blog')) return render_template('pages/blogs/create_post.html', title='New Post', form=form, legend="Creer un nouveau Post")
def adding_post(): if request.method == 'POST': title = request.form.get('title') text = request.form.get('text') user_id = current_user.id value = Post(title=title, text=text, user_id=user_id) try: db.session.add(value) db.session.commit() return redirect('/posts') except: return 'При добавлении произошла ошибка' else: return render_template('post-add.html')
def create_post(self, title, content, user_id): try: now = datetime.datetime.now() p = Post(user_id=user_id, title=title, content=content, last_replied_user_id=user_id, last_replied_time=now, created=now, updated=now) db.session.add(p) db.session.commit() return p.id, True except Exception as e: print(e) return 0, False
def new_post(group_title): form = PostForm() group = Project.query.filter(Project.title==group_title).first_or_404() if form.validate_on_submit(): message = checkMessage(form.content.data.split()) mess = message[0] if message[1]==1: user=User.query.filter_by(id=current_user.id).first() user.rating-=1 db.session.add(user) db.session.commit() post = Post(content=mess,group_id=group.id,author=current_user.username,date_posted=datetime.datetime.now()) db.session.add(post) db.session.commit() flash('Your post has been posted','success') return redirect(url_for('grouppage',group_title=group.title)) return render_template('create_post.html', title='New Post', form =form,legend ='New Post',group=group)
def main(location): clear_all() html_parser = HTMLParser() # parse a file if not location: path = os.path.dirname(os.path.realpath(__file__)) wp = wxr_parser.parse(os.path.join(path, 'wp.xml')) else: wp = wxr_parser.parse(location) tags = wp['tags'] for _, kv in tags.iteritems(): Tag(name=kv['title'], slug=kv['slug']).save() cates = wp['categories'] for _, kv in cates.iteritems(): Category(name=kv['title']).save() posts = wp['posts'] for post in posts: markdown, content = convert_content(post['content']) creator = post['creator'] user = User.objects.filter(name=creator).first() if not user: role = Role.objects.filter(name="READER").first() if not role: role = Role.objects.create(name="READER", permission=Permission.READ) password = ''.join([ random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for i in xrange(16) ]) user = User.objects.create(name=creator, email='*****@*****.**', role=[role], password=password) Post(title=html_parser.unescape(post['title']), slug=post['slug'], content=content, markdown=markdown, page=False, author=user, status=convert_status(post['status'].upper()), published_at=post['pub_date'], created_at=post['pub_date']).save()
def viewpost_post(): form = PostForm() searchform = PostSearchForm() user_icon = getUserIcon() posts = Post.query.all() if form.validate_on_submit(): post = Post(title=form.title.data, contents=form.content.data, owner=current_user.id) db.session.add(post) db.session.commit() return redirect(url_for('forum.viewpost_post')) return render_template('forum.html', title='Forum', form=form, icon=user_icon, posts=posts, searchform=searchform)
def initdb(): """Initialize the database. This will drop and recreate the actual database if it already exists. The database name from the `SQLALCHEMY_DATABASE_URI` environment variable is used for this. """ # If there is an existing DB, make sure to drop it and start completely fresh. db_url = db.engine.url if database_exists(db_url): drop_database(db_url) create_database(db_url) db.create_all() post = Post("Cool blog post title", "Content is even cooler within the blog post itself!") db.session.add(post) db.session.commit()