自动创建权限表数据和超级管理员用户(第一次优化)

在公司python项目中,项目马上要上线,需求是超级管理员和权限表用户没权限访问或修改这两个功能。就是说项目初始化创建的时候,权限和超级管理员就自己在项目中了。 优化后代码

# -*- encoding: utf-8 -*-

import pymysql
import os
from datetime import datetime


def CreateDB(host, user, password, db):
    # 安装pymysql
    cmd = 'pip install -i https://pypi.douban.com/simple pymysql'
    os.system(cmd)
    # 对要操作的数据库进行连接
    conn = pymysql.connect(host=host, user=user, passwd=password, db=db, charset='utf8mb4')
    cur = conn.cursor()

    tb_role = cur.execute("SELECT * FROM tb_role")
    DATETIME = datetime.utcnow()
    # 判断表中是否存在数据
    if tb_role == 0:
        string = [
            (DATETIME, DATETIME, 1, 1, 0, 1, '用户列表', '/api/user/', 'GET'),
            (DATETIME, DATETIME, 1, 1, 0, 2, '添加用户', '/api/user/', 'POST'),
            (DATETIME, DATETIME, 1, 1, 0, 3, '编辑用户', '/api/user/<id>', 'PATCH'),
            (DATETIME, DATETIME, 1, 1, 0, 4, '用户组列表', '/api/userGroup/', 'GET'),
            (DATETIME, DATETIME, 1, 1, 0, 5, '添加用户组', '/api/userGroup/', 'POST'),
            (DATETIME, DATETIME, 1, 1, 0, 6, '编辑用户组', '/api/userGroup/<id>', 'PATCH'),
            (DATETIME, DATETIME, 1, 1, 0, 7, '权限列表', '/api/role/', 'GET'),
            (DATETIME, DATETIME, 1, 1, 0, 8, '添加权限', '/api/role/', 'POST'),
            (DATETIME, DATETIME, 1, 1, 0, 9, '编辑权限', '/api/role/<id>', 'PATCH'),
            (DATETIME, DATETIME, 1, 1, 0, 10, '设备列表', '/api/device/', 'GET'),
            (DATETIME, DATETIME, 1, 1, 0, 11, '添加设备', '/api/device/', 'POST'),
            (DATETIME, DATETIME, 1, 1, 0, 12, '编辑设备', '/api/device/<id>', 'PATCH'),
            (DATETIME, DATETIME, 1, 1, 0, 13, '设备组列表', '/api/deviceGroup/', 'GET'),
            (DATETIME, DATETIME, 1, 1, 0, 14, '添加设备组', '/api/deviceGroup/', 'POST'),
            (DATETIME, DATETIME, 1, 1, 0, 15, '编辑设备组', '/api/deviceGroup/<id>', 'PATCH')
        ]
        # 将string里面的数据转成一个list
        sets = []
        for insert in string:
            sets.append(insert)
        # 执行插入语句
        cur.executemany("INSERT INTO `tb_role` VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)", sets)
        print 'db insert success!'

    else:
        print "数据已经存在!"

    try:

        super_user = cur.execute("SELECT * FROM auth_user WHERE username='fsaclmain' AND is_superuser='1'")
        # 判断超管是否存在
        if super_user == 0:
            cur.execute(
                "INSERT INTO `auth_user` VALUES (1,'pbkdf2_sha256$36000$qecR6HaHy1Hy$Zw1XE2aXS6pyEBbj2Qi2vwfRc6hjtdrmXb8Ai8rbotc=', NULL, 1, 'fsacladminl', '', '', '1@qq.com', 1, 1, '2017-09-28 06:12:58.417308')")
            print "superuser create success!"

    except Exception:
        print "超管已存在!"
    # commit 数据
    conn.commit()
    # 关闭数据库连接
    cur.close()
if __name__ == '__main__':

    CreateDB(host='数据库地址', user='用户', password='密码', db='数据库名称')

实现代码

import pymysql
import os

def useDB(host, user, password, db):
    cmd = 'pip install pymysql'
    os.system(cmd)
    conn = pymysql.connect(host=host, user=user, passwd=password, db=db, charset='utf8mb4')
    cur = conn.cursor()
    tb_role = cur.execute("SELECT * FROM tb_role")
    if tb_role == 0:
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:28:39.000000', '2017-11-16 08:28:42.000000', 1, 1, 0, 1, '用户列表', '/api/user/', 'GET')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:29:32.000000', '2017-11-16 08:29:35.000000', 1, 1, 0, 2, '添加用户', '/api/user/', 'POST')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:30:14.000000', '2017-11-16 08:30:17.000000', 1, 1, 0, 3, '编辑用户', '/api/user/<id>', 'PATCH')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:30:56.000000', '2017-11-16 08:30:59.000000', 1, 1, 0, 4, '用户组列表', '/api/userGroup/', 'GET')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:33:52.000000', '2017-11-16 08:33:55.000000', 1, 1, 0, 5, '添加用户组', '/api/userGroup/', 'POST')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:34:25.000000', '2017-11-16 08:34:27.000000', 1, 1, 0, 6, '编辑用户组', '/api/userGroup/<id>', 'PATCH')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:35:38.000000', '2017-11-16 08:35:40.000000', 1, 1, 0, 7, '权限列表', '/api/role/', 'GET')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:36:08.000000', '2017-11-16 08:36:11.000000', 1, 1, 0, 8, '添加权限', '/api/role/', 'POST')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:36:40.000000', '2017-11-16 08:36:45.000000', 1, 1, 0, 9, '编辑权限', '/api/role/<id>', 'PATCH')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:37:58.000000', '2017-11-16 08:38:02.000000', 1, 1, 0, 10, '设备列表', '/api/device/', 'GET')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:38:37.000000', '2017-11-16 08:38:40.000000', 1, 1, 0, 11, '添加设备', '/api/device/', 'POST')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:39:06.000000', '2017-11-16 08:39:09.000000', 1, 1, 0, 12, '编辑设备', '/api/device/<id>', 'PATCH')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:40:03.000000', '2017-11-16 08:40:05.000000', 1, 1, 0, 13, '设备组列表', '/api/deviceGroup/', 'GET')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:40:35.000000', '2017-11-16 08:40:37.000000', 1, 1, 0, 14, '添加设备组', '/api/deviceGroup/', 'POST')")
        cur.execute(
            "INSERT INTO `tb_role` VALUES ('2017-11-16 08:41:03.000000', '2017-11-16 08:41:05.000000', 1, 1, 0, 15, '编辑设备组', '/api/deviceGroup/<id>', 'PATCH')")
    else:
        print "数据已经存在"

    try:

        super_user = cur.execute("SELECT * FROM auth_user WHERE username='fsaclmain' AND is_superuser='1'")
        if super_user == 0:
            cur.execute(
                "INSERT INTO `auth_user` VALUES (1,'pbkdf2_sha256$36000$qecR6HaHy1Hy$Zw1XE2aXS6pyEBbj2Qi2vwfRc6hjtdrmXb8Ai8rbotc=', NULL, 1, 'fsacladminl', '', '', '1@qq.com', 1, 1, '2017-09-28 06:12:58.417308')")
            print "superuser create success!"
    except Exception, e:
        print e

    conn.commit()

    print 'db insert success!'

    cur.close()


if __name__ == '__main__':
    useDB(host='数据库地址', user='用户', password='密码', db='数据库名称')

后面再慢慢优化!

Tags: None

Archives QR Code

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

MySQL触发器

1、触发器定义就不说了,既然能看到我这个文章就肯定明白这个定义了。用途也不多说,来看继续向下看吧! 触发器语法: CREATE TRIGGER <触发器名称...

28250
来自专栏互联网杂技

修改数据表之添加主键约束

上一篇是对表中列的操作: 涉及到列的增删改查; ----- 而本篇是设置一个与另一个表的关系,还有列的默认值; ---- 1.一个表创建之后, 需要对这个表中的...

334110
来自专栏Albert陈凯

hive的partition的作用和使用方法

一、背景 在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partiti...

57140
来自专栏pangguoming

Spring Security OAuth2 Demo

Spring Security OAuth2 Demo 项目使用的是MySql存储, 需要先创建以下表结构: CREATE SCHEMA IF NOT EXIS...

94370
来自专栏技术碎碎念

mysql使用基础 sql语句(一)

命令行输入mysql -u root -p,回车再输入密码,进入mysql。 终端命令以分号作为一条语句的结束,可分为多行输入,只需在最后加上分号即可。如下图:...

366100
来自专栏JavaQ

MySQL timestamp类型列值自动更新

MySQL中使用timestamp定义字段,默认情况下会给字段添加自动更新的属性,本文将分析这个自动更新的设置。 问题概述 一个表中定义了两个timestam...

45470
来自专栏运维技术迷

MySQL数据库(五):索引

一.什么是索引 相当于一本数的目录 二.使用索引的好处和坏处 好处:加快查找速度 坏处:占用磁盘空间 三.查看索引命令 命令格式: show inde...

29390
来自专栏zcqshine's blog

update in 的优化写法

21370
来自专栏mwangblog

开始使用MySQL

18020
来自专栏蓝天

MySQL中MyISAM引擎与InnoDB引擎性能简单测试

[硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 S...

10020

扫码关注云+社区

领取腾讯云代金券