2014-09-04 2 views
1

죄송합니다. 나는 영어로 말하지 못한다.템플릿으로 수정 된 작업

하나의 양식이있는 페이지를 만들고 싶습니다. 이 양식에는 사용자가 사용자 이름을 입력 할 수있는 입력 상자가 있으며 사용자가 있는지 여부를 확인합니다. 사용자가 없으면 오류를 표시하고, 그렇지 않으면 다른 페이지로 이동하십시오.

질문 1.이 권리가 있습니까?

index.html을

{% if data_page['validator_name'] %} 
<div class="form-group has-error"> 
    <input type="text" name="name" /> 
    <label>{{ data_page['validator_name'] }}</label> 
{% else %} 
<div class="form-group"> 
    <input type="text" name="name"/> 
{% end %} 
</div> 

demo.py

class MainHandler(BaseHandler): 
    def get(self): 
      self.render("index.html",data_page={'validator_name':False}) 

    def post(self): 

     user_name = self.get_argument("name") 

     if self.validate_user_name(user_name): 
      self.redirect("/chat") 
     else: 
      self.render("index.html",data_page={'validator_name':"Name already use",'post_name':user_name}) 

질문 다시 2. 이동합니다.

사용자가 고유하면 페이지가 "/ 채팅"으로 리디렉션됩니다. 사용자가 브라우저 "뒤로"버튼을 클릭하면, 그 양식은 우리가 통과했다고 표시됩니다. 우리가 중단 한 사용자를 소개합니다. 오류 메시지가 표시되면 오류 메시지가 나타납니다. 그렇게하는 방법은 사전 반환, 양식은 원래 있었습니까?

답변

3

사용자 이름을 확인했는데 정확하면이 사용자에 대해 secure_cookie 또는 session을 설정해야합니다.

각 요청에서 세션 (또는 쿠키) 값을 확인하여 사용자가 로그인했는지 여부를 확인해야합니다. 이런 식으로 사용자가 뒤로 버튼을 클릭하면 사용자의 상태를 확인하고 로그인 양식을 재전송하거나 표시하기로 결정합니다.

(다른 방법으로, 세션 시스템에있는 플래시 메시지 및 알림 시스템을 사용할 수 있습니다. 이러한 메시지 세트는 한 번 표시됩니다. 즉, 잘못된 사용자 이름 메시지에 대해 플래시 메시지를 설정할 수 있습니다. 때 전화 플래시 메시지가 한 번 나타납니다)

확인이 페이지 :.

standard way to handle user session in tornado

https://gist.github.com/ayang/1735032

https://pypi.python.org/pypi/pycket/0.1

관련 문제