一、路由系統
1、默認處理函數
2、動態URL
3、分級匹配
4、基於反射(瞭解)
參數傳遞:user_list/(?P<v1>\d+)/(?P<v2>\d+) 字典+正則表達式
url(r'^app01/',include("app01.urls"))
按照不同的app請求,傳遞到不同的app裏面
例如:
主urls:
from django.conf.urls import include,url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app01/', include("app01.urls")),
]
app01 urls:
from django.conf.urls import include,url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^index/', views.index),
]
app01 views:
def index(request):
return HttpResponse('OK')
二、中間件
process_request->process_views->views
process_exception:程序報錯在執行.
請求進入->按順序執行中間件->mmm的request->xxx的request->mmm的view->xxx的view->Django處理->如果報錯->執行xxx的ex(如果處理,那麼就不執行mmm的ex,如果不處理,那麼繼續執行mmm的ex)->執行xxx的respons->執行mmm的response->返回給客戶端
三、Model(*)
1、創建表
2、操作表數據
四、Form(*)
1、用戶提交數據驗證
2、生成html標籤
五、cookie 和 session
cookie:保存於本機
session:保存於服務器
1、自動生成一段字符串
2、將str發送客戶端瀏覽器,同時將字符串當作key放置session
3、在用戶的session對應的value裏設置任意值
退出:
delrequest.session['IS_LOGIN']
設置cookie時間:
session_cookie_age 5 :5秒
六、跨站請求僞造,跨站腳本***
七、Ajax請求
views裏面的方法:
import json
def ajax_data_set(request):
ret = {'status': True, 'error':""}
try:
print request.POS
except Exception,e:
ret['status'] = False
ret['error'] = str(e)
return HttpResponse(json.dumps(ret))
function:
function AjaxSubmitSet(){
var array_users= [
{'username': 'alex', 'age':18},
{'username': 'rain', 'age':16},
{'username': 'eric', 'age': 17}
];
$.ajax({
url:"/ajax_data_set/",
type: 'POST',
tradition: true,
data: {data:JSON.stringify(array_users)},
success: function(arg){
// json.loads
var callback_dict =$.parseJSON(arg);
if(callback_dict.status){
alert('成功');
}else{
alert(callback_dict.error);
}
}
});
}
八、dadmin
九、緩存
1、配置
CACHES = {
'default': {
'BACKEND':'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': os.path.join(BASE_DIR,'cache'),
'TIMEOUT': 600,
'OPTIONS': {
'MAX_ENTRIES': 1000
}
}
}
2、應用
from django.shortcutsimport render, HttpResponse
fromdjango.views.decorators.cache import cache_page
@cache_page(60 *15)
def func(request):
return HttpResponse('xxx')