Как я могу увидеть перевод на своем веб-сайте

#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')