Django(基础篇)

1.请求周期

 


 

url> 路由 > 函数或类 > 返回字符串或者模板语言?
Form表单提交:
        提交 -> url > 函数或类中的方法
                                           - ....
                                           HttpResponse('....')
                                           render(request,'index.html')
                                           redirect('/index/')
       用户 < < 返回字符串
       (当接受到redirect时)自动发起另外一个请求
       --> url .....
Ajax

     $.ajax({        
url: '/index/', data: {'k': 'v', 'list': [1,2,3,4], 'k3': JSON.stringfy({'k1': 'v'}))}, $(form对象).serilize() type: 'POST', #请求方式 dataType: 'JSON': #数据格式 traditional: true, #若$(form对象).serilize(),则必须使用traditional: true, success:function(d){ location.reload() # 刷新 location.href = "某个地址" # 跳转 } })         提交 -> url -> 函数或类中的方法         HttpResponse('{}') 指定发送 发什么是什么         render(request, 'index.html', {'name': 'v1'}) 受到数据 进行渲染 最后变成字符串发送给后台         <h1>{{ name }}</h1> -->         <h1>v1</h1> XXXXXXX redirect... 用户 <<<<< 字符串

2.路由系统URL


(1)通过URL传递默认参数

#urls.py

from app_1 import views
urlpatterns = [
    path('index/', views.index,{'name':'root'}), #默认参数
]

接收URL传递的默认参数

#views.py

def index(request,name): #一定要在request后面添加形参name
    print(name)
    return HttpResponse('OK')

(2).命名空间

project.urls.py

from django.contrib import admin
from django.urls import path,include
from app_1 import views
urlpatterns = [
    path('a/', include('app_1.urls', namespace='author')),
]

app.urls.py

from django.contrib import admin
from django.urls import path,include
from app_1 import views
app_name='app_01'   #一定要添加app_name
urlpatterns = [
    #path('admin/', admin.site.urls),
    #path('index/', views.index,{'name':'root'}),
    path('index/', views.index,name='index'),
]

根据name生成url

#views.py
from django.shortcuts import render,HttpResponse
from django.urls import reverse
def index(request):
    v=reverse('author:index')  #通过name反查url地址
    print(v)
    return HttpResponse('OK')

django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。

 

posted @ 2018-06-10 16:27  追风的小蚂蚁  阅读(278)  评论(0编辑  收藏  举报