路由系统
一、伪静态
cnblogs:
https://www.cnblogs.com/linhaifeng/articles/7133167.html
自己:
http://127.0.0.1:8000/up_studnet/?id=12
二、路由分发
url:
url(r'^index/(\w+)/(\w+)/', index),
url(r'^test/(?P<id>\w+)/(?P<name>\w+)/', test),
def test(request, name, id):
print(id , name)
return HttpResponse('test')
三、路由正则
url(r'^test2/$', test2)
url(r'^', notfound) 需要写到最下面(上面没有匹配的会匹配这个 404 )
四。反向路由
后台url:(以name作为匹配)
url(r'^loginxxxxxxx/$', login, name='xxx')
前台:
<form action="{% url 'xxx' %}">
<input type="text">
</form>
五、路由分组
总urls.py;
url(r'^app02/', include('app02.urls')),
url(r'^app03/', include('app03.urls')),
分 app 中 urls.py:
from app03 import views
urlpatterns = [
url(r'^students/', views.studnets)
]
六、函数视图
FBV:(以前写的都是)
function based view
CBV:
class based view
urls.py:
url(r'^login/', views.Login.as_view()),
views.py:
from django.views import View
class Login(View):
def get(self, request):
return render(request, "login.html")
def post(self, request):
uname = request.POST.get('username')
return HttpResponse('ok')
原理:
'get': 请求数据
'post': 提交数据
'delete': 删除数据
'put': 更新数据
'patch': 更新部分数据
补充:
form表单提交 只支持get、post
ajax支持所有类型