用django时候映射完URL在打开http://localhost:8000/报这个错误,请问啥原因啊 新手求帮助啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用django时候映射完URL在打开http://localhost:8000/报这个错误,请问啥原因啊 新手求帮助啊相关的知识,希望对你有一定的参考价值。
Unhandled exception in thread started by <function wrapper at 0x7f3288a1be60>
Traceback (most recent call last):
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
self.check(display_num_errors=True)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/management/base.py", line 359, in check
include_deployment_checks=include_deployment_checks,
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/management/base.py", line 346, in _run_checks
return checks.run_checks(**kwargs)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 16, in check_url_config
return check_resolver(resolver)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
return check_method()
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 255, in check
warnings.extend(check_resolver(pattern))
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
return check_method()
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 254, in check
for pattern in self.url_patterns:
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/chenjunbiao/learning_log/ll_env/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 414, in url_patterns
raise ImproperlyConfigured(msg.format(name=self.urlconf_name))
django.core.exceptions.ImproperlyConfigured: The included URLconf '<module 'learning_logs.urls' from '/home/chenjunbiao/learning_log/learning_logs/urls.py'>' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.
检查一下看看是不是两个文件相互import
再看看urls里面的路径是否写的正确 参考技术A 我的也出现了错误,把urlpatterns错写成了urlpartterns 参考技术B 解决了吗,我也碰到这个问题( ▼-▼ ) 参考技术C 可能是css没配置对。
Django - 在设置中使用反向 url 映射
【中文标题】Django - 在设置中使用反向 url 映射【英文标题】:Django - use reverse url mapping in settings 【发布时间】:2010-12-03 20:21:06 【问题描述】:django 设置文件中的一些选项是 url,例如 LOGIN_URL
和 LOGIN_REDIRECT_URL
。是否可以避免对这些 url 进行硬编码,而是使用反向 url 映射?目前,这确实是我发现自己在多个地方编写相同网址的唯一地方。
【问题讨论】:
我对此表示怀疑,因为settings.py
是在 URL 模块之前加载的。不过有兴趣了解一下。好问题。
【参考方案1】:
Django 1.5 及更高版本
从 Django 1.5 开始,LOGIN_URL
和 LOGIN_REDIRECT_URL
接受命名的 URL 模式。这意味着您无需在设置中硬编码任何网址。
LOGIN_URL = 'login' # name of url pattern
对于 Django 1.5 - 1.9,您还可以使用视图函数名称,但不建议这样做,因为它在 Django 1.8 中已被弃用,并且在 Django 1.10+ 中不起作用。
LOGIN_URL = 'django.contrib.auth.views.login' # path to view function
Django 1.4
对于 Django 1.4,您可以使用 reverse_lazy
LOGIN_URL = reverse_lazy('login')
Django 1.3 及更早版本
这是原来的答案,在 reverse_lazy
添加到 Django 之前有效
在 urls.py 中,导入设置:
from django.conf import settings
然后添加url模式
urlpatterns=('',
...
url('^%s$' %settings.LOGIN_URL[1:], 'django.contrib.auth.views.login',
name="login")
...
)
请注意,您需要对 LOGIN_URL
进行切片以删除前导正斜杠。
在外壳中:
>>>from django.core.urlresolvers import reverse
>>>reverse('login')
'/accounts/login/'
【讨论】:
啊,很好的解决方案,我没有考虑从设置-> urls,只是反过来。 +1 如果您的 django 应用程序部署在 example.com/root 而不是 example.com,您能否避免对 django 根目录进行硬编码,以便 /accounts/login 解析为 /root/accounts/login / ? @gozzilli - 从 Django 1.4 开始,我会使用reverse_lazy
而不是将 settings.LOGIN_URL
导入到网址中。我已经更新了答案。
对于使用 Django 2.1 的我来说,带有 url 模式名称的 LOGIN_URL_REDIRECT 不起作用。它给了我一个 404 错误和 'path':'name_of_url'。有什么改变吗?在文档中我找不到任何东西。
@tobit 请提出新问题,您没有提供足够的信息来说明问题所在。 Django 2.1 中不应该有任何影响这一点的变化。【参考方案2】:
在 django 开发版本中 reverse_lazy() 成为一个选项: https://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse-lazy
【讨论】:
计划在 2012 年 3 月发布 te 1.4以上是关于用django时候映射完URL在打开http://localhost:8000/报这个错误,请问啥原因啊 新手求帮助啊的主要内容,如果未能解决你的问题,请参考以下文章
Django的MTV的模式三大层之一,视图层(url映射)基础