一、路由系统
1、默认处理函数
2、动态URL
3、分级匹配
4、基于反射(了解)
参数传递:user_list/(?P
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')