Django入門練手項目——博客系統

blog/views.py

from django.core.paginator import Paginator
from django.http import HttpResponse
from django.shortcuts import render

from blog.models import Article


def article_content(request):
    article = Article.objects.all()[0]
    article_id = article.article_id
    title = article.title
    brief_content = article.brief_content
    content = article.content
    publish_date = article.publish_date
    return_str = '文章ID:%s,標題:%s,摘要:%s,內容:%s,創建時間:%s。' \
                 % (article_id, title, brief_content, content, publish_date)
    return HttpResponse(return_str)


def get_index_page(request):
    page = request.GET.get('page')
    if page:
        page = int(page)
    else:
        page = 1

    all_article = Article.objects.all()
    top5_article_list = all_article.order_by('-article_id')[:5]

    paginator = Paginator(all_article, 2)
    num_pages = paginator.num_pages  # 分頁數量
    print('page num:', num_pages)
    page_article_list = paginator.page(page)
    if page_article_list.has_next():
        next_page = page + 1
    else:
        next_page = page
    if page_article_list.has_previous():
        previous_page = page - 1
    else:
        previous_page = page

    return render(request, 'index.html', {
        'article_list': page_article_list,
        'page_num': range(1, num_pages + 1),
        'curr_page': page,
        'next_page': next_page,
        'previous_page': previous_page,
        'top5_article_list': top5_article_list
    })


def get_detail_page(request, article_id):
    # all_article_detail = Article.objects.filter(article_id=article_id)[0]
    all_article_detail = Article.objects.all()
    curr_article = None
    previous_index = 0
    previous_article = None
    next_index = 0
    next_article = None

    for index, article in enumerate(all_article_detail):
        if index == 0:
            previous_index = 0
            next_index = index + 1
        elif index == len(all_article_detail) - 1:
            previous_index = index - 1
            next_index = index
        else:
            previous_index = index - 1
            next_index = index + 1
        if article.article_id == article_id:
            curr_article = article
            previous_article = all_article_detail[previous_index]
            next_article = all_article_detail[next_index]
            break

    # section_list = curr_article.content.split('\n')
    section_list = curr_article.content.split('\n')
    return render(request, 'detail.html', {
        'article_detail': curr_article,
        'section_list': section_list,
        'previous_article': previous_article,
        'next_article': next_article,
    })

GitHub:https://github.com/lgsp-Leslie/django_blog

Python:3.6

數據庫:sqlite3

Django:2.2.17

後臺賬號密碼:admin/123456

效果圖:自行運行代碼查看或自行幻想....

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章