美文网首页@IT·互联网
pymysql 连接 MySQL 实现简单登录!

pymysql 连接 MySQL 实现简单登录!

作者: 爱是一道光_e5f7 | 来源:发表于2020-10-17 13:51 被阅读0次

    根据前两篇文章,已经可以利用 Flask 实现简单的路由访问,接下来结合 mysql 实现简单的登录。

    新建一个名为 python_test 的数据库, 添加 user 表

    CREATE DATABASE /*!32312 IF NOT EXISTS*/`python_test` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;USE `python_test`;/*Table structure for table `user` */DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `id` int NOT NULL AUTO_INCREMENT,  `name` varchar(10) DEFAULT NULL,  `password` varchar(10) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;/*Data for the table `user` */insert  into `user`(`id`,`name`,`password`) values (1,'admin','123456'),(5,'oppo','456789'),(6,'vivo','987654'),(7,'huawei','');12345678910111213141516171819

    文件结构如下所示

    新建登陆页面 index.html

    <head>

        <meta charset="UTF-8">

        <title>登录</title>

    </head>

    <body>

    <form action="/login" method="post">

        <div style="position: absolute;margin-left: 750px;margin-top: 350px">

            <p>姓名:<input type="text" name="name"></p>

            <p>密码:<input type="password" name="password"></p>

            <p><input type="submit" value="登录" style="position: absolute;margin-left: 90px"></p>

        </div>

    </form>

    </body>

    </html>

    新建登陆成功页面 success.html

    <head>

        <meta charset="UTF-8">

        <title>首页</title>

    </head>

    <body>

    <p>欢迎你{{name}}

        <button onclick="back()">退出登录</button>

    </p>

    </body>

    </html>

    <script>

        function back() {

            history.back();

        }

    </script>

    新建 user_model.py 实体类和数据库 user 表对应

    class User:

        i_d = 0

        name = ''

        password = ''

        def __init__(self, i_d, name, password):

            self.id = i_d

            self.name = name

            self.password = password

    新建 user_mysql.py 连接查询数据库

    import pymysql

    def get_by_name(name):

        conn = pymysql.connect(host='127.0.0.1', user='root', password='123456', database='python_test', charset='utf8')

        cursor = conn.cursor()

        sql = "select * from user where name='%s'" % name

        # sql = "select * from user"

        cursor.execute(sql)

        results = format_data(cursor.description, cursor.fetchall())

        cursor.close()

        conn.close()

        return results

    # 数据格式化 fields 字段名,result 结果集

    def format_data(fields, result):

        # 列字段数组 格式['id', 'name', 'password']

        field = []

        for i in fields:

            field.append(i[0])

        # 返回的数组集合 格式[{'id': 1, 'name': 'admin', 'password': '123456'}]

        results = []

        for res in result:

            line_data = {}

            for index in range(0, len(field)):

                line_data[field[index]] = res[index]

            results.append(line_data)

        return results

    新建 user_dao 处理登录业务逻辑

    import user_mysql, user_model

    def login_dao(name, password):

        if len(user_mysql.get_by_name(name)) > 0:

            res = user_mysql.get_by_name(name)[0]

            user = user_model.User(i_d=res['id'], name=res['name'], password=res['password'])

            if user.name == name and user.password == password:

                return 1

            else:

                return '密码错误'

        return '用户名不存在'

    新建 user_dao 处理登录业务逻辑

    import user_mysql, user_model

    def login_dao(name, password):

        if len(user_mysql.get_by_name(name)) > 0:

            res = user_mysql.get_by_name(name)[0]

            user = user_model.User(i_d=res['id'], name=res['name'], password=res['password'])

            if user.name == name and user.password == password:

                return 1

            else:

                return '密码错误'

        return '用户名不存在'

    以上代码都是一些简单逻辑就不过多解释了,下面运行测试

    运行 user_controller.py 文件

    浏览器打开网址: http://127.0.0.1:5000/

    测试登录---->登陆成功

    测试登录---->登陆失败

    如上,就简单实现了 Flask + pymysql 简单登录。

    简单吧。简单吧。完整代码点这获取

    相关文章

      网友评论

        本文标题:pymysql 连接 MySQL 实现简单登录!

        本文链接:https://www.haomeiwen.com/subject/yioxmktx.html