08.13自我总结
django中app分组
一.django路由系统app进行分组
1.创建app
- 使用pycharm创建django的时候, 加上app的名字,后续多个app只需复制粘贴之前app整个文件即可
- 命令行Python manage.py startapp app的名字
2.app内文件简介
-
migrations :模型操作的迁移文件
-
admin.py :django admin的时候会用
-
apps.py :注册文件
-
models.py :写表生成的代码
-
tests.py :测试文件
-
views.py :视图文件,一般业务逻辑会写在其中
-
urls.py :格式与主urls.py一样复制过来即可
3.include用于主路由和分路由连接
主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
]
分urls.py:
from django.conf.urls import url
from classes import views
urlpatterns = [
url(r'^get_classes/',views.get_classes) #其域名为/classes/get_classes/
#而不是/get_classes/
]
4.路由的分发
正则表达式匹配
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)
return HttpResponse('test')
注意:
- 如果没有?P的约束, 传参的时候, 会根据顺序来获取参数对应的值
- 而如果有约束的话, 传参的时候, 会固定的将获取的值传给所对应的的约束
自定制404notfound的页面:
url(r'^',views.notfound),views:
def notfound(request);
return render(request,"404.html")
5.利用正则表达式以及name关键字反向路由
urls.py:
url(r'^login.*?/',views.login,name='xxx'),
login.html:
<form action="{% url "xxx" %}" method="post">
<input type="text">
</form>
当我们输入url 为loginXXXXXXXXXXXXXX的时候网页上form表单的url会自动变成login
如果url(r'^login11',上form表单的url会自动变成login11 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|