命令行创建Django工程
django-admin.py startproject HelloWorld
helloworld 是工程名
最新版的 Django 请使用 django-admin 命令:
django-admin startproject HelloWorld
创建完成后我们可以查看下项目的目录结构:
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- settings.py -------->这里是设置
| |-- urls.py --------> 这里配置URL 例如:url(r'^detail-(d+).html/',views.detail), 一定要加逗号!逗号!逗号!。(d+)这个是正则表达式表示匹配所有数字
| `-- wsgi.py `-- manage.py
- HelloWorld: 项目的容器。
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
- HelloWorld/settings.py: 该 Django 项目的设置/配置。
- HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
- HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
命令行创建Django APP
python manage.py startapp my_app
my_app 是APP的名称
--------------------------------------------------------------------------------------------------------------------------------
导入url: from django.conf.urls import url
导入render():from django.shortcuts import render 用于将数据传送给设定好的html并展现给用户 例如 return render(request,'xxx.html',{'k1':v1}) 这里是给html页面返回了一个字典
导入HttpResponse:from django.http import HttpResponse 用于给用户页面返回数据 例如 return HttpResponse(‘ok’)
模板语言 :
假如item 是个字典
item = {‘K1’:'V1',‘K2’:'V2'}
要循环拿到v1的话 通过索引来去 和变成语言不同的是 模板语言是通过点来取得数据
例如:v1 = item.k1
for循环
{% for i in item %}
{ %endfor% }
-----------------------------------------------------------------------------------------------
1、同过正则表达式匹配数字返回给调用函数:
url(r'^detail-(d+).html/',views.detail),
2、通过正则分组返回给调用函数并指定将某个值返回给函数的指定形参:
如下意思为 将匹配到的第一个数字传给detail的nid形参,匹配到的第二个数次传给detail的第二pid形参注
注意 :加逗号 P是大写
url(r'^detail-(?P<nid>d+)-(?P<pid>d+).html/',views.detail),
ps:
函数如果写成:
def detail(request,*args,**kwargs):
pass
那么第一个正则的传参都会被*args接收
第二个正则会被**kwargs以字典的方式接收
函数这么写就不管前面传来多少值都能照单全收
------------------------------------------------------------------------------------------------------
name:
对URL路由进行命名 ***** 以后可以根据此名称生成自己想要的URL *****
路由中设置name
url(r'^index/',views.index,name='i1'),
url(r'^yun/(d+)/(d+)/',views.index,name='i2'),
url(r'^buy/(?P<nid>d+)/(?P<pid>d+)',views.index,name='i3'),
------------------------------------------------------------
函数中:
from django.urls import reverse
def index(request,*args,**kwargs):
URL1 = reverse('i1') #相当于index/
url2 = reverse('i2',args=(1,2,)) #相当于yun/1/2
url3 = reverse('i3',kwargs= {'nid':1,'pid':'3'}) #相当于 #buy/1/3
模板语言中:
例如xxx.html
{% url 'i1' % } #相当于index/
{ % url 'i2' 1 2 % } #相当于yun/1/2
{ % url 'i3' nid=1 pid=3 % } #相当于 #buy/1/3