第一章:Django开发中url配置及获取参数

来源:互联网 发布:无线hdmi 知乎 2017 编辑:程序博客网 时间:2024/06/01 08:19

一、关于关键词参数与可变参数的认识

  • 1、python代码中经常看到**kwargs这个就表示关键字参数
    • 关键词参数赋值的时候是比如(name=xx)
  • 2、python代码中经常看到*args这个就是可变参数

二、django的项目架构

这里写图片描述

  • 1、组件app有些语言也叫模块,比如(新闻,博客,论坛),只是个人习惯叫组件
  • 2、一个django项目是由多个组件组装而成(累积而成)

三、常用的命令

  • 1、创建项目(django-admin startproject 项目名称)
  • 2、创建一个组件(python manage.py startapp 组件名称)
  • 3、运行项目(python manage.py runserver)

四、关于URL的认识

schema://host[:port#]/path/…/[?querystring][#anchor]

  • 1、schema指定使用的协议(例如:http或者https)
  • 2、host指域名或者ip地址
  • 3、port指端口号
  • 4、path资源路径
  • 5、querystring发送给http服务器的数据
  • 6、anchor锚点

五、项目开发中配置URL

  • 1、在主的urls.py文件中配置include引入组件(App)组件内的urls.py

    from django.conf.urls import url,includeurlpatterns = [    url(r'^$', views.index),    url(r'^blog/', include("blog.urls")),    url(r'^article/', include("article.urls")),]
  • 2、在各个组件(App)中定义视图

    from django.conf.urls import urlimport viewsurlpatterns = [    url(r'^$', views.index),    url(r'^info/$', views.info),]
  • 3、关于配置URL正则的规则

    • 1、主URL开始地方不要加/
    • 2、主URL后面地方要加/
    • 3、组件(App)的URL前面不要加/
    • 4、主URL后面不要加$
    • 5、组件(App)后面要加$

六、关于获取URL参数

由于DjangoURL中不分get还是post请求的,所有没有query参数,全是path参数

  • 1、在urls.py中写上使用关键字参数

    from django.conf.urls import urlimport viewsurlpatterns = [    url(r'^$', views.index),    # 说明     # 1.用/()/包括    # 2.?P<参数>\d+    url(r'^info/(?P<blog_id>\d+)/$', views.info),]
  • 2、在视图函数中接收参数

    def info(request,blog_id):    print blog_id    return HttpResponse(u"我是个人中心")
  • 3、一般会在视图函数中默认一个值

    def info(request,blog_id='0'):    print blog_id    return HttpResponse(u"我是个人中心")
  • 4、多个参数的urls.py情况

    from django.conf.urls import urlimport viewsurlpatterns = [    url(r'^$', views.index),    url(r'^info/(?P<blog_id>\d+)/$', views.info),    url(r'^info/(?P<blog_id>\d+)/(?P<comment_id>\d+)/$', views.comment),]
  • 5、多个参数的视图类

    def comment(request, blog_id='0', comment_id='0'):    print blog_id, comment_id    return HttpResponse(u'我是评论')
  • 6、页面跳转中配置参数参考模板

七、在urls.py中定义name的作用

  • 1、在视图类中做重定向

    from django.conf.urls import urlimport viewsurlpatterns = [    url(r'^$', views.index,name='blog'),    url(r'^info/(?P<blog_id>\d+)/$', views.info,name='blog_info'),    url(r'^info/(?P<blog_id>\d+)/(?P<comment_id>\d+)/$', views.comment,name='blog_comment'),]
    from django.shortcuts import reversefrom django.http import HttpResponse,HttpResponseRedirectdef info(request, blog_id):    print blog_id    return HttpResponseRedirect(reverse('blog'))
  • 2、在页面中做页面跳转参考模板

原创粉丝点击