注册账号信息需要写入数据库,登录和抽奖时从数据库获取数据

一、连接数据库

my_sql.py:

import pymysql
class MyDb:
    def __init__(self,host,password,user,db,port=3306,charset='utf8',autocommit=True):
        try:
            self.coon = pymysql.connect(host=host,password=password,
                                        user=user,db=db,port=port,
                                        charset=charset,autocommit=autocommit)
        except Exception as e:
            print('数据库连接失败!错误信息是%s'%e)
            raise Exception('数据库连接失败!错误信息是%s'%e)
            #主动抛出一个异常
        else:
            self.cur = self.coon.cursor(pymysql.cursors.DictCursor)

    def select_all(self,sql):
        try:
            self.cur.execute(sql)
        except Exception as e:
            res = 'sql语句错误,%s\n,错误的sql是【%s】'%(e,sql)
            print(res)
        else:
            res = self.cur.fetchall()
        return res
    def select_one(self,sql):
        try:
            self.cur.execute(sql)
        except Exception as e:
            res = 'sql语句错误,%s\n,错误的sql是【%s】'%(e,sql)
            print(res)
        else:
            res = self.cur.fetchone()
        return res
    def other_sql(self,sql):
        try:
            self.cur.execute(sql)
        except Exception as e:
            res = 'sql语句错误,%s\n,错误的sql是【%s】'%(e,sql)
            print(res)
            return res
    def __del__(self):
        print('拜拜啦')
        self.cur.close()
        self.coon.close()

mysql = MyDb(host='ip',user='main',password='spz123456',db='main')

# res = mysql.select_all('select * from app_myuser;')
# print(res)

import redis
r = redis.Redis(host='ip',password='HK139bc&*',decode_responses=True)

二、注册->登录->抽奖

reg_login_choice.py

from my_sql import mysql,r
import unittest
import requests

class Choujiang(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.base_url = 'http://ip/'
        cls.username = 'test_niuhy'
        cls.passwd = 'aA123456'

    def register(self):
        #注册
        url = self.base_url+'api/user/user_reg'

        data = {'username':self.username,'pwd':self.passwd,'cpwd':self.passwd}
        # sql = 'update app_myuser set is_admin = 1 where username = "%s";'%self.username
        res = requests.post(url,data).json()
        print('这是注册的结果,',res)
        self.assertEqual(res.get('error_code'),1000,msg='注册没有成功 ,实际结果是%s ' %res)

    def login(self):
        #登陆
        url = self.base_url + 'api/user/login'
        data = {'username':self.username,'passwd':self.passwd}
        res = requests.post(url,data).json()
        self.assertIn('sign',str(res),msg='登陆没有成功,实际结果是 %s'%res)
        userid = res.get('login_info').get('userId')
        sign = res.get('login_info').get('sign')
        print('登陆的结果',res)
        return userid,sign

    def choice(self,userid,sign):
        #抽奖
        url = self.base_url + 'api/product/choice'
        data = {'userid':userid,'sign':sign}
        res = requests.get(url,params=data).json()
        print('抽奖的结果',res)
        self.assertIn('product_name',str(res),msg='抽奖失败 实际结果是 %s'%res)

    def test_main(self):
        self.register()
        userid,sign = self.login()
        self.choice(userid,sign)

    @classmethod
    def tearDownClass(cls):
        sql = 'delete from app_myuser where username="%s";'%cls.username
        mysql.other_sql(sql)
        redis_key = 'choujiang:%s'%cls.username
        r.set(redis_key,0) #把抽奖次数设为0
        print('这是收尾工作')

unittest.main()

# 1、注册、 把你的用户改成管理员   app_myuser  is_admin字段代表是否为管理员
# 2、登陆、
# 3、添加商品  添加商品这里面是有文件的  app_product表

连接数据库+注册->登录->抽奖(有关联关系的接口)的更多相关文章

  1. ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录

    首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...

  2. django--调用百度AI接口实现人脸注册登录

    面部识别----考勤打卡.注册登录.面部支付等等...感觉很高大上,又很方便,下面用python中的框架--django完成一个注册登录的功能,调用百度AI的接口,面部识别在网上也有好多教程,可以自己 ...

  3. Node.js基于Express框架搭建一个简单的注册登录Web功能

    这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...

  4. Node.js原生及Express方法实现注册登录原理

    由于本文只是实现其原理,所以没有使用数据库,只是在js里面模拟数据库,当然是种中还是需要用数据库的. 1.node.js原生方法 ①html页面,非常简单,没有一丝美化~我们叫它user.html & ...

  5. vue2.0+koa2+mongodb实现注册登录

    前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道 ...

  6. express+vue+mongodb+session 实现注册登录

    上个月写了一篇文章是 express+mongodb+vue 实现增删改查. 只是简单的实现了增删改查功能,那么今天是在那个基础之上做了扩展,首先实现的功能有如下: 1. 支持注册,登录功能,用户可以 ...

  7. node.js 初学(二)—— 搭建注册/登录服务器

    node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...

  8. 第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码

    第三百三十五节,web爬虫讲解2—Scrapy框架爬虫—豆瓣登录与利用打码接口实现自动识别验证码 打码接口文件 # -*- coding: cp936 -*- import sys import os ...

  9. 巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证

    1.需求分析 .项目 ()业务 ()权限的管理 .CRM customer relationship management 客户关系管理系统 .谁来使用CRM? 销售&&班主任& ...

随机推荐

  1. niosII SDRAM ,FLASH (学习特权)

    环境: quartus v13.0  64位. DE2 cycloneII EP2C35F672C6N (学校的开发板,还是想同学借的呵呵) 主要实现flash的烧录,虽然实现了但是还是有很多运气的成 ...

  2. oracle导入数据和编码问题

    配置contrl文件 load data characterset utf8 append into table role_res_gold fields terminated by ';' TRAI ...

  3. Aggregate可以做字符串累加、数值累加、最大最小值

    Aggregate("", (m, n) => m + n + ".").TrimEnd('.'); .Aggregate(0, (m, n) => ...

  4. Canopy聚类算法

    Canopy聚类算法(经典,看图就明白) 聚类算法. 这个算法获得的并不是最终结果,它是为其他算法服务的,比如k-means算法.它能有效地降低k-means算法中计算点之间距离的复杂度. 图中有一个 ...

  5. JAVA中跨平台分隔符

    在Windows下的路径分隔符和Linux下的路径分隔符是不一样的,当直接使用绝对路径时,跨平台会暴出“No such file or diretory”的异常. 比如说要在temp目录下建立一个te ...

  6. java之yield(),sleep(),wait()区别详解-备忘笔记(转)

    1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...

  7. 如何POST一个JSON格式的数据给java接口,获得返回数据

    /** * 模拟post进行url请求 * @param string $url * @param json $post_data */ public function request_post($u ...

  8. Android适配器Adapter的学习

    Android中有很多的适配器,首先看看这些适配器的继承结构 这些适配器中,BaseAdapter用的最多,也用的最熟,先放过他,从ArrayAdapter开始 一个listAdapter用来管理一个 ...

  9. jquery与原生js比较

    以选择符为例,类似于这种 $(".class") 方式,在ie里面,肯定比$("#id") 低很多,而对于chrome和firefox,则因为提供了getEle ...

  10. 我搭建大数据Hadoop完全分布式环境遇到的坑---hadoop: command not found

    搭建大数据hadoop环境,遇到很多问题,这里记录一部分,以备以后查看. [遇到问题].在安装配置完hadoop以后,需要格式化namenode,输入指令:hadoop namenode -forma ...