我试图使一个登录页,我如何通过我的用户名和密码,并引导它到一个重定向的网站?

2024-04-20 11:59:13 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我正在尝试使我的登录页面功能化,而不使用javascript。这是我的代码的html表单。你知道吗

<form name="login" action="secure112020014431.html" method="get" onsubmit="return validate(this);" accept-charset="utf-8" > <ul> <li> <label for="user_account"></label> <div> <input type="text" name="username" placeholder="Your Username" required> </div> </li> <li> <label for="password"></label> <div> <input type="password" name="password" placeholder="Password" required> </div> </li> <br></br> <li> <input id="login" type="submit" name="submit" value="Fazer Login"> </li> </ul> </form>

这是我的主.py文件

    import webapp2
    import os
    import jinja2
    import urllib2

    jinja_environment = jinja2.Environment(autoescape=True,
      loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__))))

    class SignIn(webapp2.RequestHandler):
      def get (self):
        template = jinja_environment.get_template('signin.html')
        self.response.write(template.render())  
    class Secure(webapp2.RequestHandler):   
      def get(self):
        """
        username: Get the username from POST dict
        password: Get the password from POST dict
        """
        username = self.request.POST.get('username')
        password = self.request.POST.get('password')
        # Try to login user with password
        key='admin'
        passkey='password'
        if username and password==key and passkey:
          template = jinja_environment.get_template('secure112020014431.html')
          self.response.write(template.render())    
        else:
          template = jinja_environment.get_template('signin.html')
          self.response.write(template.render('/signin.html'))
     application = webapp2.WSGIApplication([
                                    (,('/signin.html',SignIn)
                                    ,('/secure112020014431',Secure)
                                    ], debug=True)

这是我的附录yaml你知道吗

- url: /secure112020014431
  script: main.application
  login: required

- url: /.*
  script: main.application

我想做的就是这样。 把我表格上的信息传给我的同事主.py文件。 那么,为了我的主.py接收信息并将其与密钥和密钥进行比较。 如果条件满足,请将我转到安全页面,如果不满足,请将我送回主页面。任何帮助都将不胜感激。你知道吗


Tags: nameimportselfdivgethtmlusernamelogin
1条回答
网友
1楼 · 发布于 2024-04-20 11:59:13

问题(或至少a问题)在这里:

if username and password==key and passkey:

username and password不会给出一对可以与另一对对象进行比较的对象;它给出一个值,如果两个对象都是真的,那么这个值就是真的,否则就是假的。你知道吗

创建一对可以与另一对对象进行比较的对象的方法是创建一个元组,只需在元组之间加逗号即可:

if (username, password) == (key, passkey):

当然,也可以只进行两次单独的检查,检查之间有and

if username == key and password == passkey:

顺便说一句,这种事情通常是个非常糟糕的主意。以明文形式发送用户名和密码作为表单的一部分,意味着任何能看到数据包的人都可以窃取密码。通常的方法是使用challenge-response protocol。如果你不想自己实现一个,HTTP中有一个机制可以实现,或者你可以依赖外部身份验证(例如,任何人只要能证明他拥有一个已批准的OpenID帐户列表,就可以接受),或者你也可以找到JS和Jinja/Python库来为你包装它。你知道吗

相关问题 更多 >