사용자가 유효한 제목을 입력하면 제목과 콘텐츠 (있는 경우)를 모두 표시하는 확인 페이지로 리디렉션하고 싶지만 동일한 페이지에 머물며 제목이 비어 있거나 300자를 초과하면 오류를 표시합니다. .
내 백엔드 코드는 다음과 같습니다.
def post(self):
subject = self.request.get('subject')
content = self.request.get('content')
a, b = self.validSubject(subject)
if a == True and b == True:
self.redirect('/confirm')
else:
if a == False:
error = "Title cannot be blank!"
if b == False:
error = "Title cannot be over 300 characters."
self.render("newpost.html", subject = subject, content = content, error = error)
다음은 newpost.html 템플릿의 코드입니다.
<h2>New Question</h2>
<hr>
<form method="post">
<label>
<div>Title</div>
<input type="text" id="subject" name="subject">
</label>
<label>
<div>
<textarea name="content" id="postcontent"></textarea>
</div>
</label>
<b><div class="error">{{error}}</div></b>
<input type="submit">
</form>
action="/confirm"
POST 양식에 추가하려고했지만 오류가 있어도 / confirm으로 리디렉션됩니다. webapp2 문서를 살펴 보았지만 리디렉션에서 변수를 전달하는 방법에 대해서는 아무것도 찾을 수 없습니다. ( https://webapp-improved.appspot.com/api/webapp2.html#webapp2.redirect )
webapp2와 jinja2를 사용하고 있습니다. 사전에 도움을 주셔서 감사합니다.이 코드를 꽤 오랫동안 살펴 보았습니다.
작성하려는 패턴은 사용중인 백엔드 플랫폼이나 언어에 관계없이 http 내에서 작동하지 않습니다. HTML이 서버에 게시되고 GAE 코드가 게시물을 처리합니다. 상호 작용의이 시점에서 브라우저는 이미 제출했으며 서버의 응답을 기다리고 있습니다. 이미 발생 했으므로 해당 시점에서 제출을 중지 할 수 없습니다.
양식이 서버에 제출되기 전에 Javascript의 입력 유효성을 검사해야합니다. 이렇게하면 데이터가 유효하지 않은 경우 처음에 양식 제출을 억제 할 수 있습니다.
이에 대한 예를 보려면 다음 질문을 살펴보십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다