一、关于关键词参数与可变参数的认识
- 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,include urlpatterns = [ url(r'^$', views.index), url(r'^blog/', include("blog.urls")), url(r'^article/', include("article.urls")), ]
2、在各个组件(
App
)中定义视图from django.conf.urls import url import views urlpatterns = [ url(r'^$', views.index), url(r'^info/$', views.info), ]
3、关于配置
URL
正则的规则- 1、主
URL
开始地方不要加/
- 2、主
URL
后面地方要加/
- 3、组件(
App
)的URL
前面不要加/
- 4、主
URL
后面不要加$
- 5、组件(
App
)后面要加$
- 1、主
六、关于获取URL
参数
由于
Django
中URL
中不分get
还是post
请求的,所有没有query
参数,全是path
参数
1、在
urls.py
中写上使用关键字参数from django.conf.urls import url import views urlpatterns = [ 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 url import views urlpatterns = [ 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 url import views urlpatterns = [ 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 reverse from django.http import HttpResponse,HttpResponseRedirect def info(request, blog_id): print blog_id return HttpResponseRedirect(reverse('blog'))
2、在页面中做页面跳转参考模板