Django學習筆記第4 5記

2021-07-05 02:35:29 字數 2922 閱讀 8186

一、表單

1、request

request包含一些屬性和方法:request.path,.get_host()等等

request.meta中包含了本次http請求的header資訊,常用的鍵值包括:http_referer,http_user_agent,remote_addr

使用如下例:

2、表單的屬性

views.py裡:

from django.shortcuts import render_to_response

def search_server_form(request):

return render_to_response('search_server.html')

urls.py裡:

from rasp_test import views

urlpatterns = patterns('',

# ...

(r'^search_server_form/$', views.search_server_form),

# ... )

4、資料查詢

在 search_server.html中,form的action屬性設為/search/,即返回到/search/頁面,所以在urls.py中增加

(r'^search/$', views.search),

然後在views.py中增加search函式

from models import ipv4server as ipv4server

def search(request):

if 'q' in request.get and request.get['q']:

q=request.get['q']

ipv4servers=ipv4server.objects.filter(type__icontains=q)

return render_to_response('search_result.html',)

else:

return render_to_response('search_server.html',)

然後編寫search_result.html1 2

5 6     you searched for :}

7    

8    

13    

14     no ipv4servers matched your search criteria.

15    

16 17

在search_server.html中也進行修改

please submit a search term.

5、簡化

def search(request):

error = false

if 'q' in request.get:

q = request.get['q']

if not q:

error = true

else:

ipv4servers = ipv4server.objects.filter(type__icontains=q)

return render_to_response('search_results.html',

) return render_to_response('search_server.html',

) 省去了search_server_form()函式,在urls.py中也省去了相關url,單在/search/上進行操作,所以表單的action屬性可刪除。

6、django的form框架(略)

二、高階url配置

1、使用多個檢視字首

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.views',    //利用字串技術將共同字首提取出來

(r'^hello/$', 'hello'),

(r'^time/$', 'current_datetime'),

(r'^time/plus/(\d)/$', 'hours_ahead'), )

urlpatterns += patterns('weblog.views',

(r'^tag/(\w+)/$', 'tag'), )

2、傳遞額外的引數至檢視函式中

# urls.py

from django.conf.urls.defaults import *

from mysite import views

urlpatterns = patterns('',

(r'^(foo)/$', views.foobar_view),

(r'^(bar)/$', views.foobar_view), )

# views.py

from django.shortcuts import render_to_response

from mysite.models import mymodel

def foobar_view(request, url):

m_list = mymodel.objects.filter(is_new=true)

if url == 'foo':

template_name = 'template1.html'

elif url == 'bar':

template_name = 'template2.html'

return render_to_response(template_name, )

Django學習筆記第2記

一 模板 1 模板渲染 python manage.py shell from django.template import template,context template定義形式,context定義內容 t template c context print t.render c render為...

Mysql實戰45講第4,5 講學習筆記

二.innodb的索引模型 三.常見問題及答案 優點 雜湊表以key value 儲存,這種結構適合等值查詢的場景,比如memached以及其他的nosql 引擎。缺點 做區間查詢,需要全部掃瞄 有序陣列只適用於靜態儲存引擎,比如儲存一些不會修改的資料 優點 有序陣列在 等值查詢和區間查詢的時候表現...

Django學習筆記

django web程式設計思路 global setting run server check environment start project django admin.py startproject mysite 生成專案檔案 manage.py 檔案基本就是 django admin.py...