2013-12-22 7 views
7

Я новичок в Django и пытаюсь выяснить, как работают URL в Django.Django 1.6 URL не работает

мое приложение в urls.py

from django.conf.urls import url, patterns 
import views 

urlpatterns = patterns('', 
         url(r'^$', views.index, name='index')) 

Проект urls.py

from django.conf.urls import patterns, include, url 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 

    url(r'^admin/', include(admin.site.urls)), 
    url(r'^app/', include('app.urls')), 
) 

APPEND_SLASH = True устанавливается в settings.py и приложение входит в INSTALLED_APPS.

Я получаю Страница не найдена, когда я иду на localhost:8000/app.

Теперь я не могу пойти в localhost:8000/admin также.

RuntimeError at /admin/ 
maximum recursion depth exceeded 

приложения views.py

from django.http import HttpResponse 

def index(request): 
    return HttpResponse("This is Hello") 

Settings.py

import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

APPEND_SLASH = True 
# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = 'bfa&y-8d4^c&6a4hqz^am^1-xce05oj6&_$n!t=$v10fka(-!w' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

TEMPLATE_DEBUG = True 

ALLOWED_HOSTS = [] 


# Application definition 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'app', 
) 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 

ROOT_URLCONF = 'appmain.urls' 

WSGI_APPLICATION = 'appmain.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

# Internationalization 
# https://docs.djangoproject.com/en/1.6/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.6/howto/static-files/ 

STATIC_URL = '/static/' 

Что я делаю неправильно. Пожалуйста помоги.

+0

ничего плохого не может определить. Является ли ваше приложение в настройках INSTALLED_APPS? И можете ли вы опубликовать views.index? – allcaps

+0

Вы установили 'APPEND_SLASH' в' False'? Если это так, вам нужно перейти в 'localhost: 8000/app /' – sk1p

+0

У вас установлен CommonMiddleware?Или изменилось 'APPEND_SLASH'? https://docs.djangoproject.com/en/dev/ref/settings/#append-slash – iurisilvio

ответ

1

В адресах нет ничего плохого.

В настройках:

DEBUG = True 

Reload http://localhost:8000/app/ и вывесить отслеживающий к Stackoverflow.

UPDATE

Я создаю проект Django и использовать код, поставляемый. Это нормально. Вы уверены, что http://localhost:8000/app/ дает 404? http://localhost:8000/ делает 404, что ожидается, потому что нет изображения для /.

Администратор также работает. Чтобы исследовать «максимальную рекурсию», вы должны предоставить models.py и admin.py код.

Некоторые рекомендации: переименуйте свой проект. appmain (для проекта) и app (для приложения) сбивают с толку, поскольку они выглядят одинаково, но более важно appmain - это не приложение, а проект.

Надеюсь, это поможет.

+0

См. Обновленный вопрос? – ajkumar25

+0

Вид в порядке. Используете ли вы встроенный сервер разработки? – allcaps

+0

Да, по умолчанию используется Django. – ajkumar25

1

Стоит попробовать:

Изменение проект urls.py на что-то вроде этого:

from django.conf.urls import patterns, include, url 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^app/', include('project.app.urls')), 
) 
Смежные вопросы