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

一、连接数据库

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. ceph 对接openstack liberty

    Ceph 准备工作 官方文档:http://docs.ceph.com/docs/master/rbd/rbd-openstack/ 官方中文文档:http://docs.ceph.org.cn/rb ...

  2. 【DevExpress】1、SearchLookUpEdit详解

    一.属性的基本介绍: 绑定数据源: lookUpEdit.Properties.ValueMember = 实际要用的字段;   //相当于Editvalue lookUpEdit.Propertie ...

  3. Git第三方仓库安装方式(IUS)

    1.安装使用里面说的自动化安装脚本 curl https://setup.ius.io | sh 2.然后可以看到 git2u相关内容 yum search git 3.执行安装,并查看下版本 yum ...

  4. Android 4学习(8):用户界面 - Fragment

    参考<Professional Android 4 Development> Fragment简介 Fragment是我们可以将Activity分成不同的组成部分,这些组成部分拥有自己的生 ...

  5. python:for语句的使用方法

    for循环的语法格式: for i in range(n):#从数据类型中拿一个值赋值给i print(i)#打印i 例如: #for for i in range (1,6,2):#从一开始到六之前 ...

  6. sendClond如何更新邮件模板

    $url = 'http://www.sendcloud.net/webapi/template.update.json'; $API_USER = ''; $API_KEY = ''; $conte ...

  7. mysql存储引擎简介

  8. 在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware

    首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的命令行里输入“ipconfig /all”,找到VMware Network Adapte ...

  9. php学习第一天-勤劳致富

    所谓“勤劳致富”,是很有科学依据的,且是经过我的亲身实践的. 自毕设突然转变为开发项目之后,整个天都变了.先是妹子给我订的票被强行取消,然后又是师兄的一句“***一小时就搞定了”,说明一下这个***是 ...

  10. python中Dict与OrderedDict

    使用dict时,Key是无序的.在对dict做迭代时,我们无法确定Key的顺序. 如果要保持Key的顺序,可以用OrderedDict: from collections import Ordered ...