一、路由系统

         1、默认处理函数

         2、动态URL

         3、分级匹配

         4、基于反射(了解)

参数传递:user_list/(?P\d+)/(?P\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')