django配置路由,创建子模块

  1. 基于正则表达式的路由

    #urls.py文件
    from django.conf.urls import url
    from . import views
    
    app_name='user'
    urlpatterns = [
    	url(r'^login/', views.login,name='login'),
    	#在路由中传参数
    	url(r'^show/(?P<myid>\w*)', views.show,name='show'),
    ]
    
  2. 路由重定向(同一个模块)

    #views.py文件
    from django.shortcuts import reverse,redirect
    def login():
    	url=reverse('路由的name')
    	#如果要传参数
    	url=reverse('路由的name',kwargs={key:value})
    	return redirect(url)
    
  3. 新建子模块

    pyhton manage.py startapp user
    
  4. 修改配置文件

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'user',
        'position'
    ]
    
  5. 在子模块新建urls.py,在主模块添加子模块的路由

    from django.contrib import admin
    from django.urls import path,include
    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        url(r'^$', views.index,name='index'),   
    	#子模块的路由为user
        path('user/', include('user.urls',namespace='django-user')),
        # path('position/', include('position.urls')),
    ]
    
    #子模块的urls.py
    from django.conf.urls import url
    from . import views
    
    app_name='user'
    urlpatterns = [
        url(r'^login/', views.login,name='login'),
        url(r'^show/(?P<myid>\w*)', views.show,name='show'),
    ]
    
  6. 跨模块的路由跳转

    #reverse('模块名:路由名')
    reverse('user:show',kwargs={'myid':12})
    return redirect(url)
    

猜你喜欢

转载自blog.csdn.net/qq_42650983/article/details/82871595