[英]urls.py entry for django v1.10 mysite.com:8000/index.html
我无法按照我想要的方式在我的应用程序的 urls.py 文件中获取 url 条目。 当一个人输入mysite.com:8000/
,我希望它使用与mysite.com:8000/index.html
相同的视图我可以使用url(r'^index.html$', views.index, name='index'),
并且当我在 Chrome 地址栏中键入mysite.com:8000/index.html
时,视图会正确显示,或者我可以从 urls.py 条目和地址栏中修剪.html
,这没问题,但我想用正则表达式,我可以让它显示为/
或index*
很多谷歌搜索还没有让我得到答案......
编辑:基于@moses 的更新:
from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from . import views
urlpatterns = [
url(r'^(index\.?[html]{,4})?$', views.index, name='index'),
# url(r'^index$', views.index, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
现在我得到:“异常值:index() 只需要 1 个参数(给定 2 个)”
您可以使用以下正则表达式模式匹配 url 中'index.html'
0 或 1 次重复,即^$
或r'^index.html$'
:
>>> re.match(r'^(?:index\.html)?$', 'index.html')
<_sre.SRE_Match object; span=(0, 10), match='index.html'>
>>> re.match(r'^(?:index\.html)?$', '')
<_sre.SRE_Match object; span=(0, 0), match=''>
>>> re.match(r'^(?:index\.html)?$', 'login')
>>>
您的 Django 网址模式变为:
url(r'^(?:index.html)?$', views.index, name='index')
见演示: https : //regex101.com/r/MVCPDN/2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.