2017-07-19 4 views
0

Ich habe gerade virtualenv eingerichtet und dann eine neue App namens "app1" unter dem neuen Projekt "devp1" erstellt.Django - NameError: Name 'app1' ist nicht definiert

views.py in in "app1" dir

from django.shortcuts import render 
from django.http import HttpResponse 
# Create your views here. 

def home(request): 
    return HttpResponse("wow my first page") 

settings.py in "devp1" dir

INSTALLED_APPS = [ 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'app1', 
] 

url.py in „devp1: Ich habe die Dateien wie folgt bearbeitet "dir

urlpatterns = [ 
url(r'^admin/', admin.site.urls), 
url(r'','app1.views.home'), 
] 

Allerdings, wenn ich den Server laufen, ich folgende Fehlermeldung empfangen, habe ich nicht gefunden, warum es nicht in der Lage ist, zu sehen‚app1‘.

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f7ab830b400> 
Traceback (most recent call last): 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/autoreload.py", line 227, in wrapper 
    fn(*args, **kwargs) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run 
    self.check(display_num_errors=True) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/base.py", line 359, in check 
    include_deployment_checks=include_deployment_checks, 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/base.py", line 346, in _run_checks 
    return checks.run_checks(**kwargs) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/registry.py", line 81, in run_checks 
    new_errors = check(app_configs=app_configs) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/urls.py", line 16, in check_url_config 
    return check_resolver(resolver) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/urls.py", line 26, in check_resolver 
    return check_method() 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 254, in check 
    for pattern in self.url_patterns: 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 405, in url_patterns 
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 398, in urlconf_module 
    return import_module(self.urlconf_name) 
    File "/home/usr1/dev/lib64/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1471, in exec_module 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/home/usr1/dev/devp1/devp1/urls.py", line 22, in <module> 
    url(r'', app1.views.home), 
    NameError: name 'app1' is not defined 
+1

Der Code in der Rückverfolgung stimmt nicht mit dem Code überein, den Sie von urls.py gepostet haben. –

+0

Können Sie das genauer erklären? Ich bin neu in Django und Python. Vielen Dank. –

+0

Das hat nichts damit zu tun, neu zu sein. Der Code, den Sie gepostet haben, ist nicht der Code, den Sie ausführen. –

Antwort

2

Es sieht so aus, als wären die Anführungszeichen nicht in Ihren Ansichten. Die Zurückverfolgungs zeigt

url(r'', app1.views.home), 

aber Ihre urls.py Datei zeigt

url(r'','app1.views.home'), 

Ohne diese Zitate wird es nicht die Ansicht in Ihrer Anwendung finden. Ich denke auch nicht, dass deine Regex so funktionieren wird, wie du es willst. Ich würde das stattdessen versuchen:

from app1 import views as app1_views 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', app1_views.home, name='home'), 
] 
+1

ja. Das war's. :) vielen Dank. –

Verwandte Themen