作者: zifanwang 发布于2020-06-18
首先打开article/views.py的article_list:
# 文章列表函数
def article_list(request):
# 根据GET请求中查询条件
# 返回不同排序的对象数组
if request.GET.get('order') == 'total_views':
article_list = ArticlePost.objects.all().order_by('-total_views')
order = 'total_views'
else:
article_list = ArticlePost.objects.all()
order = 'normal'
paginator = Paginator(article_list, 6)
page = request.GET.get('page')
articles = paginator.get_page(page)
context = {'articles': articles, 'order': order}
return render(request, 'article/list.html', context)
request.GET.get('order')会获取网址上order的值, 比如网址是zifan.site/article/list/?order=total_views, 那么request.GET.get('order')就会返回'total_views'。 paginator = Paginator(article_list, 6)会将article_list分成每6个文章一页, 如果使用Paginator(article_list, 9)就会将article_list分成每9个文章一页, 可以修改成自己想要的。 articles = paginator.get_page(page)可以获取paginator列表的第page页的文章。 最后return render(request, 'article/list.html', context)就会返回article/list.html,
下面打开mysite/urls.py:
...
from django.contrib import admin
from django.urls import path, include
from django.conf.urls import url
from django.conf import settings
from django.views.static import serve
from . import views
from django.views import static ##新增
from django.conf import settings ##新增
urlpatterns = [
path('admin/', admin.site.urls),
path('article/', include('article.urls', namespace='article')),
path('userprofile/', include('userprofile.urls', namespace='userprofile')),
path('',views.shou),
url(r'^img/(?P<path>.*)$', serve, {'document_root':'c:/mysite11/static/img'}),
path('you/',views.you),
path('comment/', include('commen.urls', namespace='commen')),
url(r'^static/(?P<path>.*)$', static.serve,{'document_root': settings.STATIC_ROOT}, name='static'),
]
urlpatterns是所有url的列表,第一行path('admin/', admin.site.urls),就是设置后台的网址, 现在的网址是'admin/',可以自己更改。