简单的登录和注册


##导入模块:
import sys
sys.path.append('../modules')
存在modluesa.py
from moudlesa import aa

##导入包(文件夹)
#包下面必须加__init__.py文件,(init里面写的内容可直接作为包加.的属性和方法,大多数情况下为空)
print(aa.__doc__)#可查看包的文档
#三种导入方式
from moudles.moudlesa import aa
from .moudlesa import aa #特别注意这一项,不同目录时需要加
import moudles


#linux数据库root用户不允许远程登录,如要允许,可修改sudo vim mysqld.cnf 设置bin-address=0.0.0.0

 

#08login.py
#coding:utf-8
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web

from  tornado.options import define,options
from data.sqlalchemy08 import User,session
define('port',default=8000,help='run port',type=int)
define('version',default='0.0.1',help='version 0.0.1',type=str)
#自定义异常信息:
class AuthError(Exception):
    def __init__(self,msg):
        super(AuthError,self).__init__(msg)
class LoginHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('08login.html',error=None)
    def post(self):
        username=User.by_name(self.get_argument('name',''))
        passwd=self.get_argument('passwd','')
        if username and username[0].passwd ==  passwd:
            self.render('08hello.html',username=username[0].username)
        else:
            self.render('08login.html',error='登录失败')

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        username='no'
        self.render('08hello.html',
                    username=username,)
#注册
class RegisterHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('08register.html',error=None)
    def post(self):
        if self._check_argument():
            try:
                self._create_user()
                self.render('08login.html',error='注册成功,请登录:')
            except AuthError as e:
                self.render('08register.html',error=e)
            except Exception as e:
                self.render('08register.html',error=e)


        else:
            self.render('08register.html',error='输入错误!')
    ## _check_argument_ 加_表示类的私有方法
    def _check_argument(self):
        username=self.get_argument('name','')
        passwd=self.get_argument('passwd1','')
        if len(username)<10 and len(passwd)<10:
            return True
        else:
            return False
    def _create_user(self):
        if User.by_name(self.get_argument('name','')):
            raise AuthError('Name is registered')
        if self.get_argument('passwd1','') != self.get_argument('passwd2',''):
            raise AuthError('两次输入密码不相同')
        user=User()
        user.username=self.get_argument('name','')
        user.passwd=self.get_argument('passwd1','')
        session.add(user)
        session.commit()


if __name__ == "__main__":
    tornado.options.parse_command_line()
    # print(options.port)
    app=tornado.web.Application(
        handlers=[
            (r'/login',LoginHandler),
            (r'/',IndexHandler),
            (r'/index',IndexHandler),
            (r'/register',RegisterHandler),
        ],
        template_path='templates',
        static_path='static',
        debug=True,
        #autoescape=None,   #关闭自动转义 全局的
    )
 #固定写法:
    http_server=tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()
login.py
# 08login.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
{% if error %}
    {{error}}
{% end %}
<form method="post" action="/login" >
    用户名</br>
    <input type="text" name="name" /><br>
    <input type="text" name="passwd" /><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
login.html
# 08register.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
{% if error %}
    {{error}}
{% end %}
<h1>注册</h1>
<form method="post" action="" >
    用户名</br>
    <p><input type="text" name="name" /></p>
    密码
    <p><input type="text" name="passwd1" /></p>
    确认密码
    <p><input type="text" name="passwd2" /></p>
    <input type="submit" value="提交">
</form>

</body>
</html>
register.html
#08hello.html
{% extends "./04base.html" %}

{% block title %} {{ username }} {% end %}

{% block body %}
    {% if username!='no' %}

    欢迎,{{username}}

    </br>
    <img src="/static/images/c.jpg"  width="250px"  height="250px"></br>
    {% else  %}
    请登录 <br>

    {% include "./06include.html" %}
    </br>
    <img src="/static/images/c.jpg"  width="250px"  height="250px">
    </br>
    {% end %}

{% end %}
hello.html

 

转载于:https://www.cnblogs.com/lajiao/p/7784499.html

以下是 HBuilder 实现简单登录注册界面的代码示例: HTML 代码: ``` <!-- 登录界面 --> <div id="login" class="page"> <header class="bar bar-nav"> <h1 class="title">登录</h1> </header> <div class="content"> <div class="list-block"> <ul> <li> <div class="item-content"> <div class="item-inner"> <div class="item-title label">用户名</div> <div class="item-input"> <input type="text" placeholder="请输入用户名" id="username"> </div> </div> </div> </li> <li> <div class="item-content"> <div class="item-inner"> <div class="item-title label">密码</div> <div class="item-input"> <input type="password" placeholder="请输入密码" id="password"> </div> </div> </div> </li> </ul> </div> <div class="content-block"> <div class="row"> <div class="col-50"> <a href="#" class="button button-big button-fill button-danger" onclick="login()">登录</a> </div> <div class="col-50"> <a href="#register" class="button button-big button-fill button-success">注册</a> </div> </div> </div> </div> </div> <!-- 注册界面 --> <div id="register" class="page"> <header class="bar bar-nav"> <h1 class="title">注册</h1> </header> <div class="content"> <div class="list-block"> <ul> <li> <div class="item-content"> <div class="item-inner"> <div class="item-title label">用户名</div> <div class="item-input"> <input type="text" placeholder="请输入用户名" id="register-username"> </div> </div> </div> </li> <li> <div class="item-content"> <div class="item-inner"> <div class="item-title label">密码</div> <div class="item-input"> <input type="password" placeholder="请输入密码" id="register-password"> </div> </div> </div> </li> </ul> </div> <div class="content-block"> <div class="row"> <div class="col-50"> <a href="#" class="button button-big button-fill button-danger" onclick="register()">注册</a> </div> <div class="col-50"> <a href="#login" class="button button-big button-fill button-success">返回登录</a> </div> </div> </div> </div> </div> ``` JavaScript 代码: ``` // 登录函数 function login() { // 获取用户名和密码 var username = document.getElementById("username").value; var password = document.getElementById("password").value; // 在此处处理登录逻辑 console.log("用户名:" + username); console.log("密码:" + password); } // 注册函数 function register() { // 获取用户名和密码 var username = document.getElementById("register-username").value; var password = document.getElementById("register-password").value; // 在此处处理注册逻辑 console.log("用户名:" + username); console.log("密码:" + password); } ``` 以上代码实现一个简单登录注册界面,其中登录注册的逻辑处理可以根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值