Django-路由
-
路由
from django.conf.urls import url from django.contrib import admin from . import view from . import personal urlpatterns = [ url(r'^$', view.hello), url(r'^person\w*$', personal.login), ]
-
导入其他应用路由文件(子模块子路由)
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('polls/', include('polls.urls')), path('detail/(?p<pid>\d+)',postion.detail,'detail') path('admin/', admin.site.urls), ]
模板中可以使用路由名称
{% url 'detail'%}
-
path(route, view, kwargs=None, name=None, Pattern=None)
-
route
模式不搜索GET和POST参数或域名。例如,在请求中https://www.example.com/myapp/,URLconf将查找 myapp/。在请求中https://www.example.com/myapp/?page=3,URLconf也将查找myapp/。
-
view
当Django找到一个匹配的模式时,它会以一个HttpRequest对象作为第一个参数以及路由中的任何“捕获”值作为关键字参数来调用指定的视图函数。 -
kwargs
任意关键字参数可以在字典中传递给目标视图。
-
name
命名您的URL可以让您从Django其他地方明确地引用它,特别是在模板中。这个强大的功能允许您在只触摸单个文件的情况下对项目的URL模式进行全局更改。
-
-
通过路由传递参数
path('<int:position_id>/', views.detail, name='detail'),
在views中,一定要加上
def detail(request,position_id): print(request.values) content={'content':position_id} return HttpResponse(json.dumps(content))
-
migrate
迁移非常强大,随着时间的推移,您可以随时更改模型,而无需删除数据库或表并创建新的数据库 - 它专门用于实时升级数据库,而不会丢失数据。我们将在本教程的后面部分更深入地介绍它们,但现在请记住进行模型更改的三步指南: