我怎样才能在我的网站上看到翻译
How can I see a translation in my website
我目前正在开发我的网站,这是一个翻译器,您输入一个短语,它就会被翻译成一种发明的语言。
翻译器功能代码如下:
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%}
为什么要使用 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 request那么你就会出错。您还没有在 textarea 中放置 name 属性,所以在您的情况下它是:
<textarea class="form-control" name="text" id="exampleFormControlTextarea1" rows="6"></textarea>
你认为它是:
text = request.GET.get('text')
我目前正在开发我的网站,这是一个翻译器,您输入一个短语,它就会被翻译成一种发明的语言。
翻译器功能代码如下:
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%}
为什么要使用 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 request那么你就会出错。您还没有在 textarea 中放置 name 属性,所以在您的情况下它是:
<textarea class="form-control" name="text" id="exampleFormControlTextarea1" rows="6"></textarea>
你认为它是:
text = request.GET.get('text')