Первый проект django, показывающий ошибку без модуля с именем «опросы»

#python #django

#python #django

Вопрос:

Я следил за официальным документом Django, и я пишу приложение для опроса.

И в пакете mysite при запуске он говорит, что нет модуля с именем «опросы», как я могу это решить?

мой python — 3.6, мой Django — 1.10.2,

это мой каталог

 ├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   
│   ├── __pycache__
│   ├── settings.py
│   
│   ├── urls.py
│   └── wsgi.py
└── polls
    ├── __init__.py
    ├── __pycache__
    ├── admin.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    ├── views.py
    └── apps.py
  

mysiteurls.py

 from django.conf.urls import include, url
from django.contrib import admin
import polls
urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
   ]
  

INSTALLED_APPS в settings.py

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

 ]
  

И есть еще одна проблема в документе, типы документов:

 from django.conf.urls import url

from . import views

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

Когда я запускаю его, он говорит, что не удается импортировать имя «просмотры», я удаляю из., тогда это работает.Но проблема, описанная выше, все еще не решена, кто-нибудь может сказать мне, почему??

Комментарии:

1. Не связывайте изображения. Либо включите их, либо, что еще лучше, скопируйте-вставьте код в виде текста и используйте блок кода для форматирования кода. Пожалуйста, не заставляйте нас переходить по ссылкам на сторонние ресурсы.

2. Пожалуйста, поместите код ваших файлов project .py.

Ответ №1:

Я столкнулся с этой проблемой, это стоило мне двух дней, основная причина — имя файла urls.py это неправильно , как ‘ urls.py «. Перед urls.py в ‘ urls.py «. Это сработало, когда я исправил опросы / ‘ urls.py » чтобы polls/urls.py .

Комментарии:

1. Если вы проверите сообщение, такого пробела перед urls.py … итак?

Ответ №2:

Пожалуйста, проверьте polls/urls.py : это должно быть так:

 from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
  

Также проверьте mysite/urls.py : это должно быть так:

 from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  

И, наконец, проверьте polls/views.py : это должно быть так:

 from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")
  

И я думаю, что не стоит добавлять что-либо вручную в раздел INSTALLED_APPS = [ ] . По крайней мере, для этого урока.

Ответ №3:

Похоже, у вас не установлено polls приложение.

Перейдите settings.py , найдите внутри него INSTALLED_APPS = [...] и добавьте 'polls', в этот список.

Комментарии:

1. но я добавил «опросы» в INSTALLED_APPS

2.Ну, Django этого не видит, значит, что-то не так. Запустите эти три строки из каталога вашего проекта: python manage.py shell from django.conf import settings settings.INSTALLED_APPS и вставьте результат сюда. Также вы можете удалить строку import polls urls.py , Django автоматически обработает это с помощью строки.

3. @Mr.tang Покажите раздел INSTALLED_APPS вашего settings.py .

4. @почти новичок Хорошо, я опубликовал его

5. @Mr.tang Я не

Ответ №4:

Несмотря на прикрепленную схему папок, у меня есть подозрение, что приложение polls было запущено на одну папку слишком высоко. Означает, что в папке « You_want_to_keep_Your_project » у вас есть: mysite>mysite . И вы должны сначала запустить приложение изнутри mysite , но вы запустили его только в папке « You_want_to_keep_Your_project «. Я сделал это в этом руководстве и столкнулся с той же проблемой.

PS. В данный момент вам не нужно объявлять polls в настройках (хотя, конечно, это не проблема, если вы это сделали)

Комментарии:

1. Я столкнулся с аналогичной проблемой, я думал, что мне нужно создать файл urls.py в родительской mysite папке (папке проекта), но на самом деле он находится внутри папки mysite , которая находится внутри папки проекта с тем же именем.

Ответ №5:

Я столкнулся с такой ситуацией. Но когда я копирую код из документации в файл, проблема решена. Я подумал, что версия django, которую вы использовали, может быть неправильной. Ссылка здесь: https://docs.djangoproject.com/en/2.1/faq/install /

Ответ №6:

В предварительно введенной записи файла говорится:

     1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
  

Итак, попробуйте ввести:

 from django.contrib import admin
from django.urls import path, include
from polls import views
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  

но после этого вам нужно импортировать несколько вещей в pollsurls.py файл, потому что, если вы этого не сделаете, он выдаст сообщение об ошибке, сообщающее, что файл пуст.

 from django.contrib import admin
from django.urls import path
urlpatterns =[

]
  

Ответ №7:

Я тоже столкнулся с этой проблемой, но в моем случае это было потому, что я непреднамеренно добавил изменения, предусмотренные в руководстве для mysite/urls.py into mysite/urls.conf .

Создание mysite/urls.py и заполнение в соответствии с руководством решили проблему для меня.

Ответ №8:

У меня такое чувство, что эта проблема связана со средой установки.

Для вашей первой проблемы попробуйте url(r'^polls/', include('mysite.polls.urls')),

Для вашей второй проблемы попробуйте from polls import views или просто придерживайтесь import views .

Если это не сработает, я предлагаю перезапустить учебник, потому что очевидно, что среда не была настроена соответствующим образом. С другой стороны, код в порядке.

Ответ №9:

Доступен ли TCP-порт, который вы используете? В примере предлагается попробовать, http://localhost:8000/polls/ но может случиться так, что порт 8000 уже используется. Используйте команду (в Windows)

 netstat -an|findstr 8080
  

в Linux команда должна быть

 netstat -an|grep 8080
  

чтобы проверить доступность порта 8080 (я выбрал номер порта случайным образом).

Если целевой порт доступен (скажем, для аргументации), введите следующую команду в командной строке, чтобы запустить встроенный облегченный веб-сервер Django:

 python manage.py runserver 8080
  

Я предполагаю, что вышеуказанное выполняется в том месте, где manage.py находится в расположении.
Если пока все в порядке, включится легкий веб-сервер.

Затем в вашем браузере вы должны попробовать http://localhost:8080/polls / который должен показать Hello, world. You're at the polls index.

Ответ №10:

Есть ли у вас 'mysite', раньше 'polls', в INSTALLED_APPS = [] разделе. Кроме того, каждое имя приложения должно быть написано так, как 'xyz', здесь обычно отсутствует синтаксис, пожалуйста, проверьте это. После подтверждения и проверки этого, пожалуйста, запустите python manage.py migrate polls .

Убедитесь, что вы запускаете это в (VENV), а не в (BASE). После этой python manage.py runserver команды запустится сервер с указанием IP.

Ответ №11:

Без сомнения, вы уже столкнулись с этой проблемой, но у меня была такая же проблема, и для меня это было основной причиной. Я понятия не имею, почему, но в моем settings.py В итоге я остановился на этой фразе;

 from mysite.polls.apps import PollsConfig
  

в моем settings.py , не уверен, откуда это взялось, так как я искал в учебнике, и там не сказано, чтобы добавить его. Я нашел его, выполнив поиск по всему моему каталогу для;

mysite.polls