如果使用urlpattern匹配不输入任何网址时,应该如何写?
例如:仅匹配http://127.0.0.1:8000/时想要跳转到某个页面,这时urlpattern中的url规则应该写成:
情况1:使用url
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'',include('CRM.urls')), # 以前习惯用url(r'^$',view.somedef)
# 如果这么写会报错:
# Your URL pattern '^$' uses include with a route ending with a '$'
]
情况2:使用path
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('CRM.urls')),
]
情况3:使用re_path
from django.contrib import admin
from django.conf.urls import re_path
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'',include('CRM.urls')),
]
以上情况在python3.4+Django2.0.13环境下测试通过
额外说一下:在跳转的时候,这样写:
return redirect(request.GET.get('next','/'))
可以保证如果有人乱输入网址时就会自动跳转到默认页面,而避免出现错误提示
顺便吐槽一下,后台写博客的编辑环境用着很别扭。
将就看吧,我实在弄不了它这个格式应该如何调整