def save_to_db(self): if self.id.data: # edit article = Article.query.get(int(self.id.data)) else: article = Article() article.title = self.title.data article.short_description = self.short_description.data article.body = self.body.data article.published = self.published.data article.category_id = self.category.data article.authors = list(map(lambda member_id: Member.query.get(int(member_id)), self.authors.data)) article.tags = [] for tag in self.tags.data: tag_record = Tag.query.filter_by(name=tag).first() if not tag_record: tag_record = Tag(name=tag) db.session.add(tag_record) db.session.commit() article.tags.append(tag_record) if self.article_cover.data: article.cover = upload(self.article_cover.data) print("article", article) db.session.add(article) db.session.commit()
def run(self, page=0): self.page = page while self.continued: self.load_page() page_contents = self.load_page_contents() if not page_contents: print(f'{self} 완료') return for url in page_contents: self.load_content(url) content = self.parse_content() if content is None: continue session = create_session() article = (session.query(Article).filter( Article.title == content.title).first()) if not article: article = Article() article.title = content.title article.body = content.text article.source = self.name session.add(article) session.commit() time.sleep(random.random() * 1 + 2) print(f'{self.page}페이지 탐색 완료')
def publish(): form = ArticleForm(request.form) if request.method == "GET": return render_template("control/publish.html", form=form) if form.validate_on_submit(): # 获取博客内容 TextContent = request.form.get("TextContent") # 获取上传的文件,并对图片进行预处理,上传到七牛云,然后获取url地址 poster = None if request.files.get('poster'): file = request.files.get('poster') imgData = get_specification_image(file) poster = uploadImg(imgData) with db.submit_data(): data = Article() data.setter_data(request.form) data.body = TextContent data.poster = poster db.session.add(data) return redirect(url_for('web.index')) else: for errorMessage in form.errors: flash(errorMessage) return redirect(url_for('web.publish'))
def write(request): if request.session.get('username') != 'admin': info = "你不是小张!不过可以<a href='../about/'>查看小张</a>" return HttpResponse(info) if request.method == 'POST': title = request.POST['title'] body = request.POST['body'] author = request.POST['author'] article = Article() article.title = title article.body = body article.author = author article.create_time = datetime.now() article.save() return render(request, 'index.html', context_instance=RequestContext(request)) return render(request, 'write.html', context_instance=RequestContext(request))
def add_article(): form = ArticleForm() if request.method == 'GET': return render_template('back/add-article.html', form=form) if request.method == 'POST': if form.validate_on_submit(): # 通过验证就建文章对象 article = Article() article.title = form.data.get('title') article.body = form.data.get('body') article.desc = form.data.get('desc') article.keywords = form.data.get('keywords') article.c_name = form.data.get('category') # TODO: 如果栏目不存在,就调转到添加页面 article.save() return redirect(url_for('back.article')) errors = form.errors return render_template('back/add-article.html', errors=errors, form=form)