Есть ли функция, которая обновляет значение var в django views.py?
Добрый день, я очень новичок в django и программировании в целом. Есть ли функция, которая обновляет значения переменных на основе пользовательского ввода?
Я хотел бы написать функцию, которая выводит вывод в html с помощью HttpResponse и ожидает ввода пользователем...
В моем файле views.py у меня есть следующее:
def getResponse(request):
userMessage = request.GET.get('userMessage');
return HttpResponse("Good to see you. May I know your name?")
name=input(userMessage)
return HttpResponse("Good to know you", name,
". I can tell you your age if you tell me which year you were born")
year=input(userMessage)
age = ((datetime.date.today().year) - year)
return HttpResponse("You are", age "old")
Мой Html выглядит следующим образом:
<div id="userInput">
<form id="user_Input" method="post">
{% csrf_token %}
<input type="text" name="userMessage" id="textInput" placeholder="Type your
message...">
<input type="submit" id="buttonInput" name="" value="Send">
</form>
</div>
</div>
<script type="text/javascript">
function getUserResponse(){
var userText =$('#textInput').val();
var userHTML = "<p class='userText'>User: <span>"+userText+"</span></p>";
$('#textInput').val("");
$('#pal').append(userHTML);
$.get('/qpal/getResponse',{userMessage:userText}).done(function(data){
var returnedMessage = "<p class='botText'> Pal: <span>"+ data +"</span></p>";
$('#pal').append(returnedMessage);
})
}
$('#buttonInput').click(function(e){
e.preventDefault();
getUserResponse();
})
</script>
html работает, однако он отображает только первое значение HttpResponse каждый раз, как показано на картинкеscreenshot.
В чистой среде python код будет прекрасно работать, используя только print и input, и я пытаюсь заставить его работать так же в Интернете (html), используя django
Заранее спасибо за ваше время
Прежде всего, вы используете слишком много возвратов без условия, что неправильно, и из-за этого ваша функция всегда возвращает первое сообщение.
вы должны хранить или обновлять переменную сообщения на основе пользовательского ввода, например, вы можете использовать другую переменную в вашем HTML с именем Qnum
номер вопроса и на основе этого показывать следующее сообщение:-
def getResponse(request, QNum):
message = "Hi"
if QNum == 1:
userMessage = request.GET.get('userMessage');
message = "Good to see you. May I know your name?"
elif QNum == 2:
message = "Good to know you, {}. I can tell you your age if you tell me which year you were born".format(input(userMessage))
elif QNum == 3:
year=input(userMessage)
age = ((datetime.date.today().year) - year)
message = "You are, {} old".format(age)
return HttpResponse(message)