Django中设置路由参数

1.urls.py中写入
# -*- coding: utf-8 -*-
import sys

reload(sys)

sys.setdefaultencoding('utf8')
from django.conf.urls import url

# .代表当前目录
# ..代表上级目录
from . import views

urlpatterns = [
    # 通过localhost:8000/app/路径,也可以访问到网站的首页
    url(r'^$',views.index,name='app_index'),
    # 登录的路由
    url(r'^login/',views.log_in,name='login'),
    # 注销的路由
    url(r'^logout/$',views.log_out,name='logout'),
    # 注册的路由
    url(r'^register/$',views.register,name='register'),
    # 配置文章详情的路由  ,用于接收前端a标签传递的id,并传给相应的视图函数
    url(r'^(?P[0-9]+)/$',views.article,name='article'),
    # 配置评论路由
    url(r'(?P[0-9])/comment/$',views.comment,name='comment'),
    # 配置收藏路由
    url(r'(?P[0-9])/keep/$', views.keep, name='keep'),
    # 配置点赞路由
    url(r'(?P[0-9])/poll/$', views.poll, name='poll'),

]
2.views.py视图中写入
# 设置文章详情页面的视图函数
# @login_required要求必须先登录,才能访问Article的视图函数,否则会要求先登录
@login_required
def article(request,article_id):
    # get_object_or_404():是在查询模型对象时,如果该对象不存在,那么就显示Django内置的404页面展示给用户,比直接显示异常信息更加友好。
    article_obj = get_object_or_404(Article,id=article_id)

    # 文章的内容
    content = article_obj.content
    # 文章标题
    title = article_obj.title
    # 文章的所有评论
    comments = article_obj.comment_set.all()

    # 创建LoginFormCommentForm表单,渲染到article_page.html中显示
    commentform = CommentForm()
    loginform = LoginForm()

    return render(request,'article_page.html',{
        'article_title':title,# 标题
        'article':article_obj,# 文章对象
        'loginform':loginform,#登录表单
        'commentform':commentform,#评论表单
        'content':content,#文章内容
        'comments':comments,#文章的所有评论
    })

你可能感兴趣的:(Django框架)