1. 路由系統, URL
1. url(r'^index/', views.index), url(r'^home/', views.Home.as_view()),
2. url(r'^detail-(\d+).html', views.detail),
3. url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
ps:
def detail(request, *args, **kwargs):
pass
實戰:
a.
url(r'^detail-(\d+)-(\d+).html', views.detail),
def func(request,nid, uid):
pass
def detail(request, *args):
pass
def detail(request, *args):
pass
b.
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail)
def func(request, nid,uid):
pass
def func(request, **kwargs):
kwargs = {'nid': 1, 'uid': 3}
def func(request, *args, **kwargs):
args = (2, 9)
4. name(作用:根據此名稱生成自己想要的URL)
對URL路由關系進行命名,以後可以根據此名稱生成自己想要的URL
url(r'^asdfasdfasdf/', views.index, name='i1'),
url(r'^yug/(\d+)/(\d+)/', views.index, name='i2'),
url(r'^buy/(?P<pid>\d+)/(?P<pid>\d+)/', views.index, name='i3'),
def func(request, *args,**kwargs):
from django.urls import reverse
url1 = reverse('i1') # asdfasdfasdf/
url1 = reverse('i2', args=(1,2)) # yug/1/2
url1 = reverse('i2', kwargs={'pid':1,'nid':9}) # yug/1/9
xxx.html
{% url "i1" %} # asdfasdfasdf/
{% url "i2" 1 2 %} # yug/1/2
{% url "i3" pid=1 nid=9 %} # yug/1/9
模闆語言:
{% url "indexx" %}
{% url "indexx" 3 %}
# 注意:
# 目前的URL
request.path_info
2.視圖
request.GET
request.POST
request.FILES
# checkbox等多選的内容
request.POST.getlist()
# 上傳檔案,form标簽要做特殊設定
obj.request..FILES.get('fff')
obj.name
f = open(obj.name, mode='wb')
for item in obj.chunks():
f.write(item)
f.close()
4. FBV & CBV
function base view
url.py
index -> 函數名
view.py
def 函數(request):
...
===>
/index/ -> 函數名
/index/ -> 類
===>
建議:兩者都用
3.模闆
4.ORM操作
select * from tb where id >1
# 對應關系
models.tb.objects.filters(id__gt=1)
models.tb.objects.filters(id=1)
models.tb.objects.filters(id__lt=1)
1.Django請求生命周期
1.Django請求生命周期
-> URL對應關系 (比對) -> 視圖函數 -> 傳回使用者字元串
-> URL對應關系 (比對) -> 視圖函數 -> 打開一個HTML檔案,讀取内容
2. 建立django project
django-admin startproject mysite
'''
mysite
mysite
- 配置檔案
- url.py
- settings.py
cd mysite
python manage.py startapp cmdb
mysite
mysite
- 配置檔案
- url.py
- settings.py
cmdb
- views.py
- admin.py
- models.py # 建立資料庫表
3,配置
模闆路徑
靜态檔案路徑
# CSRF
4.編寫程式
a.url.py
/index/ -> func
b.views.py
def func(request):
# 包含所有的請求資料
---
return HttpResponse('字元串')
return render(request,'index.html',{''})
return redirect('URL')
c.模闆語言
return render (request, 'index.html', {'li': [11,22,33]})
{% for item in %}
<h1>{{ item }}</h1>
{% endfor %}
**********索引 ************
<h2> {{ item.0 }} </h2>
GET:
POST: