Django-路由

Django-路由

  1. 路由

    urls.py

    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),
    ]
    
  2. 导入其他应用路由文件(子模块子路由)

    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('polls/', include('polls.urls')),
        path('detail/(?p\d+)',postion.detail,'detail')
        path('admin/', admin.site.urls),
    ]
    
    

    模板中可以使用路由名称

     {% url 'detail'%}
    
  3. path(route, view, kwargs=None, name=None, Pattern=None)

    1. route

      模式不搜索GET和POST参数或域名。例如,在请求中https://www.example.com/myapp/,URLconf将查找 myapp/。在请求中https://www.example.com/myapp/?page=3,URLconf也将查找myapp/。

    2. view
      当Django找到一个匹配的模式时,它会以一个HttpRequest对象作为第一个参数以及路由中的任何“捕获”值作为关键字参数来调用指定的视图函数。

    3. kwargs

      任意关键字参数可以在字典中传递给目标视图。

    4. name

      命名您的URL可以让您从Django其他地方明确地引用它,特别是在模板中。这个强大的功能允许您在只触摸单个文件的情况下对项目的URL模式进行全局更改。

  4. 通过路由传递参数

     path('/', views.detail, name='detail'),
    

    在views中,一定要加上

     def detail(request,position_id):
    
         print(request.values)
         content={'content':position_id}
         return HttpResponse(json.dumps(content))
    
  5. migrate

    迁移非常强大,随着时间的推移,您可以随时更改模型,而无需删除数据库或表并创建新的数据库 - 它专门用于实时升级数据库,而不会丢失数据。我们将在本教程的后面部分更深入地介绍它们,但现在请记住进行模型更改的三步指南:

    • 改变你的模型(in models.py)。
    • 运行以为这些更改创建迁移python manage.py makemigrations
    • 运行以将这些更改应用于数据库。python manage.py migrate

你可能感兴趣的:(django)