Пример #1
0
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')
Пример #2
0
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())
Пример #3
0
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