#python #html #django
#python #HTML #django
Вопрос:
В настоящее время я работаю над своим первым веб-сайтом. Но я сталкиваюсь с этой проблемой. У меня есть этот класс:
class TranslatorView(View):
def translator(self, request, phrase):
translation = ""
for letter in phrase:
if letter.lower() in "a":
if letter.isupper():
translation = translation "U"
else:
translation = translation "u"
elif letter.lower() in "t":
if letter.isupper():
translation = translation "A"
else:
translation = translation "a"
elif letter.lower() in "c":
if letter.isupper():
translation = translation "G"
else:
translation = translation "g"
elif letter.lower() in "g":
if letter.isupper():
translation = translation "C"
else:
translation = translation "c"
return translation, render(request, 'main/translator.html')
И URL-адрес для этого класса
path('translator/', TranslatorView.as_view(), name='translator'),
Когда я захожу на веб-сайт, появляется ошибка HTTP 405.
Я думаю, что у меня проблема в классе. Но Idk, как ее решить
Комментарии:
1. Значение 405 означает, что вы используете метод (GET / POST / …), который не разрешен. Таким образом, вам необходимо реализовать
def get
def post
, и т.д. для поддержки соответствующих методов HTTP.2. Как мне это сделать
Ответ №1:
Значение 405 означает, что вы используете метод (GET / POST / …), который не разрешен. Таким образом, вам необходимо реализовать def get
def post
, и т.д. для поддержки соответствующих методов HTTP.
Например:
class TranslatorView(View):
def get(self, request, phrase):
translation = ''
for letter in phrase:
lletter = letter.lower()
isup = letter.isupper()
if lletter == 'a':
translation = 'uU'[isup]
elif lletter == 't':
translation = 'aA'[isup]
elif lletter == 'c':
translation = 'gG'[isup]
elif lletter == 'g':
translation = 'cC'[isup]
return render(request, 'main/translator.html', {'translation': translation})
но это пока не сработает, поскольку phrase
не является параметром URL. Вы должны добавить это в путь:
path('translator/<str:phrase>/', TranslatorView.as_view(), name='translator'),
Комментарии:
1. Я добавил параметр url в path, я скопировал ‘translator/<str:phrase>/’ в панель навигации, но там написано, что это не зарегистрированное пространство имен
2. @marcjuegosnt: вам, конечно, нужно добавить значение для параметра, например
{% url 'translator' 'CAGT' %}
.3. @MarcJuegos_Nt: кроме того, если вы не указали
app_name = ''
вurls.py
, то URL-адрес не имеет префикса с пространством имен…4. Я не указывал имя приложения, потому что это settings.py . Но я, вероятно, ошибаюсь, потому что я новичок в программировании
5. Мне кажется, что эта ошибка: не удалось разобрать остаток: «фраза» из фразы «переводчик»»