С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 09.09.2017
Сообщений: 59
1

Появляется Exception TypeError после запуска Django проекта

12.02.2018, 12:58. Показов 5648. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть в следующем: Имеется в DjangoProject/urls.py:
Python
1
2
3
4
5
6
7
from django.conf.urls import url
from django.contrib import admin
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^goods/', 'myapplication.urls')
]
А в папке приложения DjangoProject/myapplication/urls.py вот такое:
Python
1
2
3
4
5
6
from django.conf.urls import url
from myapplication import views
urlpatterns = [
    url(r'^$', views.index, name="index"),
    #url(r'^goods/$', views.good, name="good")
]
В результате выскакивает
Python
1
raise TypeError('view must be a callable or a list/tuple in the case of include().')
В каком из urls.py и что надо поменять
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2018, 12:58
Ответы с готовыми решениями:

Появляется окно CPU после начала запуска проекта
Проект компилируется и собирается без ошибок. Когда нажимаю запуск - появляется окно CPU и дальше...

При компиляции не появляется файл запуска моего проекта (экзешник)
Здравствуйте! Может кто-нибудь знает, из-за чего при компиляции проекта в конечной папке не...

При создании проекта вместо запуска или отладки появляется Присоединение, а обозреватель решений не показывает проект
Доброго времени суток. Недавно начал изучать программирование на c# в visual studio 2019. Для...

Появляется BSOD после запуска VirtualBox
Установил VirtualBox. Запускаю машину и появляется экран смерти,именно на самом компе,а не на...

После запуска программы появляется BSOD
Доброго времени суток друзья! Столкнулся с такой проблемой, после запуска программы ( у меня...

11
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
12.02.2018, 14:18 2
Цитата Сообщение от phoenix_css Посмотреть сообщение
В каком из urls.py и что надо поменять
Обычно джанго помимо типа ошибки пишет номер строки, в которой эта ошибка произошла.

Могу предположить, что ошибка скорее всего здесь:
Python
1
    url(r'^goods/', 'myapplication.urls')
Вторым аргументом должна передаваться либо функция либо список, тк именно такого поведения ожидает функция url:
Python
1
2
3
4
5
6
7
8
9
def url(regex, view, kwargs=None, name=None):
    if isinstance(view, (list, tuple)):
        # For include(...) processing.
        urlconf_module, app_name, namespace = view
        return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
    elif callable(view):
        return RegexURLPattern(regex, view, kwargs, name)
    else:
        raise TypeError('view must be a callable or a list/tuple in the case of include().')
например, как вы сделали ниже, но закомментировали почему-то:
Python
1
    url(r'^goods/$', views.good, name="good")
Соответственно в views.py должна быть функция
Python
1
def good(request):
которая должна возвращать ответ
0
1 / 1 / 0
Регистрация: 09.09.2017
Сообщений: 59
12.02.2018, 14:45  [ТС] 3
Но что мне прописать в urlpatterns моего DjangoProject/urls.py, чтобы при обращении http://localhost:8000/goods вызывался views.py из моего myapplication?

Добавлено через 21 минуту
Исправил в DjangoProject/urls.py
Python
1
2
3
4
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^goods/', include('myapplication.urls'))
]
Далее, написал простого клиента:
Python
1
2
3
4
5
6
7
import requests
import json
url = "http://localhost:8000/goods/index"
data = {'data': [{'key1': 'val1'}, {'key2': 'val2'}]}
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json.dumps(data), headers=headers)
print(r.text)
A Django теперь выдаёт:
Python
1
2
Not Found: goods/index
[12/Feb/2018 14:38:04] "POST goods/index HTTP/1.1" 404 2058
Во views.py функция index(request) есть.
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
12.02.2018, 16:18 4
Цитата Сообщение от phoenix_css Посмотреть сообщение
чтобы при обращении http://localhost:8000/goods
Цитата Сообщение от phoenix_css Посмотреть сообщение
url = "http://localhost:8000/goods/index"
не сходится
0
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
12.02.2018, 16:21 5
Цитата Сообщение от phoenix_css Посмотреть сообщение
Not Found: goods/index
Правильно, регулярки ж для него не задано. В myapplication/urls.py пропишите
Python
1
    url(r'^index$', views.index, name="index")
0
1 / 1 / 0
Регистрация: 09.09.2017
Сообщений: 59
12.02.2018, 16:31  [ТС] 6
Написал, всё равно не видит:
Not Found: /goods/index/

Добавлено через 1 минуту
Jabbson, небольшая опечатка. Там как раз http://localhost:8000/goods/index/
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
12.02.2018, 16:46 7
Цитата Сообщение от phoenix_css Посмотреть сообщение
Написал, всё равно не видит:
выложите сюда полностью свои оба urls,
свой views, и версию джанги, а то мы тут долго гадать будем.
0
1 / 1 / 0
Регистрация: 09.09.2017
Сообщений: 59
12.02.2018, 17:03  [ТС] 8
DjangoProject/urls.py:
Python
1
2
3
4
5
6
7
from django.conf.urls import url, include
from django.contrib import admin
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^goods/$', include('myapplication.urls')),
]
А теперь myapplication/urls.py:
Python
1
2
3
4
5
6
7
8
from django.conf.urls import url
from myapplication import views
 
urlpatterns = [
    #url(r'^$', views.index, name="index"),
    #url(r'^goods/index$', views.index)
    url(r'^index$', views.index, name="index")
]
Версия Django 1.11.7
Ну а это myapplication/views.py:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
# Create your views here.
 
 
@csrf_exempt
 
 
def index(request):
    print("Trying to get data...")
    if request.method == 'POST':
        received_json_data = request.body
        d = json.loads(received_json_data)
     return JsonResponse({'foo': 'bar'})
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
12.02.2018, 17:38 9
Доллары - это хорошо, но не всегда. Убирайте в обоих urls.
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
12.02.2018, 17:40 10
после этого

Появляется Exception TypeError после запуска Django проекта

Появляется Exception TypeError после запуска Django проекта
0
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
12.02.2018, 17:59 11
Вот интересно, в посте #3 было
Python
1
    url(r'^goods/', include('myapplication.urls'))
а потом в #8 уже
Python
1
    url(r'^goods/$', include('myapplication.urls')),
и мы еще удивляемся, почему:
Цитата Сообщение от phoenix_css Посмотреть сообщение
всё равно не видит

Не по теме:

Пора записываться на курсы телепатии



PS: phoenix_css, учите регулярные выражения
0
Эксперт по компьютерным сетям
5901 / 3358 / 1036
Регистрация: 03.11.2009
Сообщений: 10,009
12.02.2018, 18:08 12
ну справедливости ради, стоит отметить, что тут
Цитата Сообщение от netBool Посмотреть сообщение
url(r'^index$', views.index, name="index")
доллар приведет к тому, что если поставить слеш в конце урла в браузере, то страница упадет.
0
12.02.2018, 18:08
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2018, 18:08
Помогаю со студенческими работами здесь

После запуска появляется окно и сразу пропадает
Я хотел создать exe файл Python. Посмотрел, как это сделать в данном ролике:...

После запуска не появляется стандартная страница laravel
Здравствуйте. Вообщем удалось установить laravel(наконец-то) . Но после установки появляется шаблон...

Кнопки нет при программировании, а после запуска появляется
Помогите, пожалуйста. Скачал текстовый редактор с исходниками, и не могу исправить чтобы кнопка...

после запуска Setup.exe не появляется окно установки MatLab
после запуска Setup.exe появляется сообщение "Подождите, пока Windows настраивает "Microsoft Visual...

После запуска windows 7 появляется серый экран и не отвечает проводник
После запуска windows появляется серый экран и не отвечает проводник


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru