def add(request): art = Article() if request.method == "POST": username = request.session.get('username') user_id = User.objects.get(user_name=username).id art.user_id = user_id art.page_view = randint(1, 20) art.category_id = randint(1, 5) art.title = request.POST.get('title') #print(art.title) art.content = request.POST.get('content') art.date_publish = datetime.today().strftime("%Y/%m/%d/%H/%M/%S") art.save() return render(request, 'blog/add.html')
def articleAdd(request): if request.method == "POST": title = request.POST.get("title") category_id = request.POST.get("category_id") excerpt = request.POST.get("excerpt") tags = request.POST.get("tags") cover_img = request.POST.get("cover_img") img = str(cover_img).split("media/")[1] content = request.POST.get("content") article_type = request.POST.get("type") recommended = request.POST.get("recommended") try: article = Article() article.title = title article.excerpt = excerpt article.img = img article.body = content article.author_id = request.user.id article.category_id = category_id article.is_recommend = recommended if article_type == 'release': article.is_release = 1 elif article_type == 'save': article.is_release = 0 article.save() article.tags.add(*list(Tag.objects.filter(id__in=tags.split(',')))) result = { "code": "1", "msg": "提交成功!", } except Exception as e: print(e) result = { "code": "0", "msg": "提交失败!", } return JsonResponse(result) else: category_all = Category.objects.all() tag_all = Tag.objects.all() return render(request, 'layui-mini/management/articleAdd.html', locals())
def parse_md_to_article(file_path): """ 解析 md文件 :param file_path: md文件路径 :return: Article 文章对象 """ with open(file_path) as f: print(file_path) content = f.read() head = re.findall(r"---[.\\n\s\S]*---", content) # print(re.findall(r"---[.\\n\s\S]*---", content)) title = re.findall( r"^title: .*$", content, re.M)[0].split(": ")[1] if not title: print(file_path, "-------") created_time = re.findall( r"^date: .*$", content, re.M)[0].split(": ")[1] tags = re.findall( r"^tags: .*$", content, re.M)[0].split(": ")[1] tags = list(filter(None, re.split(r"[\[ ,\]]", tags, re.M))) try: category_id = re.findall( r"^category: .*$", content, re.M)[0].split(": ")[1] except IndexError: category_id = re.findall( r"^categories: .*$", content, re.M)[0].split(": ")[1] body = content.split(head[0])[1].strip() abstract = body.split("<!--more-->")[0] last_modified_time = created_time status = 'p' views = 0 likes = 0 topped = 0 article = None try: article = Article.objects.get(title=title) except Exception: pass if not article: article = Article() article.title = title print("----------", title) if title is 'Android Debug Bridge': print("true") if created_time: p = parse_datetime(created_time.strip()).replace(tzinfo=utc) naive = p article.created_time = naive article.last_modified_time = naive else: print("----------error create time is null:", title) article.body = body article.abstract = abstract article.status = status article.views = views article.likes = likes article.topped = topped article.save() save_tags(tags=tags) for tag in tags: article.tags.add(Tag.objects.get(name=tag)) c = None save_category(category_id) try: c = Category.objects.get(name=category_id) except Exception: pass if not c: c = Category(name=category_id) article.category_id = c.id # print(article.title, article.created_time, article.tags, article.category_id) return article