#python #html #css #django #translation
#python #HTML #css #django #перевод
Вопрос:
В настоящее время я работаю над своим веб-сайтом, который представляет собой переводчик, в который вы вводите фразу, и она переводится на изобретенный язык.
Вот код функции переводчика:
def translator(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
Тем не менее, я застрял в показе этой функции в моем интернете, вот код в views.py:
from .translate import translator
def translator_view(request):
return render(request,'main/translator.html')
def translated_view(request):
text = request.GET.get('text')
print('text:', text)
translate = translator
dt = translator.detect(text)
tr = translated.text
context = {
'translated': tr
}
return render(request, context, 'main/translated.html')
Вот шаблон, в котором вы вводите текст:
<form action="{% url 'translated' %}" method= "get">
<div class="form-group">
<center><h2 class = "display-3">TRANSLATE YOUR DNA CHAIN</h2></center>
<br>
<br>
<textarea class="form-control" id="exampleFormControlTextarea1" rows="6"></textarea>
<br>
<button type='Submit' class= "btn btn-primary btn-lg btn-block">Translate</button>
</div>
</form>
Вот шаблон, который должен показывать перевод.
{% extends "base.html"%}
{% block content%}
<div>
<center><h2 class="display-4">DNA TRANSLATED SUCCESFULLY INTO</h2></center>
<br>
<br>
<br>
<h3>
{{ translated }}
</h3>
</div>
{% endblock content%}
Комментарии:
1. Я дал вам ответ. Если это было полезно, пожалуйста, попробуйте. Спасибо
2. Я пытаюсь сделать это прямо сейчас, я выбрал get, потому что я действительно не хочу хранить это в базе данных, как универсальный переводчик. Тем не менее, я собираюсь попробовать это таким образом.
3. отлично, использование post-запроса не означает, что вы помещаете его в базу данных, это означает, что вы ничего не отправляете по URL. Это означает, что метод post безопаснее, чем get при отправке данных.
4. Хорошо, спасибо, что сказали мне это, я вроде как новичок в программировании
5. Так это сработало? Итак, если я помог вам, не могли бы вы, пожалуйста, обмануть мой ответ. Спасибо
Ответ №1:
Почему вы используете запрос GET Я думаю, что лучше всего использовать POST-запрос.
def translated_view(request):
text = request.POST['text']
print('text:', text)
translate = translator
dt = translator.detect(text)
tr = translated.text
context = {
'translated': tr
}
return render(request, context, 'main/translated.html')
<form action="{% url 'translated' %}" method="post">
<div class="form-group">
<center><h2 class = "display-3">TRANSLATE YOUR DNA CHAIN</h2></center>
<br>
<br>
<textarea class="form-control" name="text" id="exampleFormControlTextarea1" rows="6"></textarea>
<br>
<button type='Submit' class= "btn btn-primary btn-lg btn-block">Translate</button>
</div>
</form>
Но если вы действительно хотите использовать запрос get, тогда у вас ошибка. Вы не поместили атрибут name в текстовую область, поэтому в вашем случае это:
<textarea class="form-control" name="text" id="exampleFormControlTextarea1" rows="6"></textarea>
и это ваш взгляд на его:
text = request.GET.get('text')