Django 的路由系统
Django的路由系统
创建app
创建app:
a. 使用pycharm创建django的时候, 加上app的名字
b. Python manage.py startapp app的名字
路由的分组
a. 将业务逻辑写入到app中的views中
urls.py:
from app01 import views
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^test/', views.test),
]
b. 使用include来进行app分组;
urls.py:
from django.conf.urls import url, include
urlpatterns = [
url(r'^classes/', include("classes.urls")),
url(r'^staudent/', include("staudent.urls")),
url(r'^teachers/', include("teachers.urls")),
]
在其他剩余的app中, 添加urls.py文件, 以classes为例:
from django.conf.urls import url
from classes import views
urlpatterns = [
url(r'^get_classes/', views.get_classes)
]
在这个app的views中, 添加业务逻辑处理函数, 以classes为例:
from django.shortcuts import render,HttpResponse
# Create your views here.
def get_classes(request):
return HttpResponse('classes list')
路由的分法
- 正则表达式匹配
urlrouters:
url(r'^test/(\w+)/(\w+)/', views.test),
url(r'^test1/(?P<id>\w+)/(?P<name>\w+)/', views.test1),
views.py:
def test(request, name, id):
print(id, name)
return HttpResponse('test')
def test1(request, name, id):
print(id, name)
return HttpResponse('test')
注意:
如果没有?P的约束, 传参的时候, 会根据顺序来获取参数对应的值
而如果有约束的话, 传参的时候, 会固定的将获取的值传给所对应的的约束
自定制404notfound的页面:
url(r'^', views.notfound),
views:
def notfound(request);
return render(request, "404.html")
- 反向路由解析:
urls.py:
url(r'^logindbsjhalbdhaskbhdkjsabhdkbashkdbhsabdhsja/$', views.login, name='xxx'),
login.html:
<form action="{% url "xxx" %}" method="post">
<input type="text">
</form>
- FBV (function based views)
使用函数来处理业务逻辑
- CBV (class based views)
使用类来处理业务逻辑
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):
pass
当请求过来的时候, 会优先判断你的请求方法是GET还是POST, 如果是GET请求的话, 走GET函数, 反之, 走POSt函数
Http的请求方法:
'get',:获取信息的
'post':提交数据用post方式
'put', :更新数据
'patch', :部分更新
'delete':删除
form表单的方式, 只支持GET/POST
ajax的方式, 全部支持
type: "POST" 、get、delete
个性签名:独学而无友,则孤陋而寡闻!
如果觉得这篇文章对你有小小的帮助的话,记得点个“关注”哦,博主在此感谢!还可以扫码添加好友,交流编程上的问题哦!
万水千山总是情,点赞再走行不行!哈哈哈(っ•̀ω•́)っ✎⁾⁾!