天天看點

第01 02章節-Python3.5-今日内容概要 1Django基礎(http://www.cnblogs.com/wupeiqi/articles/5237704.html)Django進階(http://www.cnblogs.com/wupeiqi/articles/5246483.html)1. 路由系統, URL2.視圖3.模闆4.ORM操作1.Django請求生命周期GET:POST:

Django基礎( http://www.cnblogs.com/wupeiqi/articles/5237704.html )

Django進階( http://www.cnblogs.com/wupeiqi/articles/5246483.html

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:

  • 送出資料