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

一、连接数据库

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. Julia - 变量

    变量的赋值 julia> a = 1 # 把 10 赋给变量 a 1 julia> a + 1 # 变量 a 的值加 1 2 julia> a = 4 # 重新赋值给变量 a 4 j ...

  2. webrtc系列文章

    WEBRTC RTP/RTCP协议族 2017-02-22 20:15 阅读(144) 评论(0) WebRTC 基于GCC的拥塞控制(下) 2017-02-22 15:44 阅读(108) 评论(0 ...

  3. FatMouse' Trade(Hdu 1009)

    Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the wareho ...

  4. Linux的基本指令--其他命令

    一 . 终端翻页: shift-pageup shift-pagedown 二 . 看手册:man man man 2 read 查看read系统函数的man page(在第二个section中,表示 ...

  5. linux下搭建android NDK开发环境

      1)下载android-ndk-r4 下载地址 http://www.ideasandroid.com/android/sdk/android-ndk-r4-linux-x86.zip http: ...

  6. window - BOM对象

    Window 对象 Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外 ...

  7. Linux ping不通外网

    在linux中ping www.baidu.com 无法ping通,可能原因是DNS没配置好 方法一: 修改vi /etc/resolv.conf  增加如下内容: nameserver 114.11 ...

  8. C# 读取文件中的sql语句 创建数据库以及表结构

    大概思路是: 读取文件 根据文件中行内容为GO 作为分割  一条条放到list中 然后在程序中逐条执行sql语句; 值得一提的是 创建数据库的语句是不允许放到程序事务中执行的 所以目前我是分了两个文本 ...

  9. 616. Add Bold Tag in String加粗字符串

    [抄题]: Given a string s and a list of strings dict, you need to add a closed pair of bold tag <b&g ...

  10. Hadoop对数据仓库的影响

    转载http://www.dwway.com/portal.php?mod=view&aid=9065 在过去三年,Hadoop生态系统已经大范围扩展,很多主要IT供应商都推出了Hadoop连 ...