'''
用户接口层
'''

# 导入数据库包下面的处理数据模,为了使用其内部名称空间
from db import db_handler

# 注册接口函数,接收名字与密码两个参数
def register_interface(name, pwd, balance=15000):
    user_dic = db_handler.select(name)  # 用户信息字典 == 数据库包 里面的 查找用户名是否存在得返回值
    # 返回值(不返回则返回了(没有设置返回值),存在则返回用户信息字典)

    if user_dic:  # 如果返回了字典说明用户名在之前已经被注册
        return False, '用户已存在'  # 返回给外界两个值(错误,用户已存在)

    # 以上条件没有成立,说明用户信息不存在,用户的注册名没有被别人注册,可以执行下面代码,将用户信息写入
    user_dic = {  # 定义用户信息字典
        'name': name, 'pwd': pwd, 'balance': balance, 'flow': [], 'shopping_cart': {}
        # 用户名[k]:姓名,
        # 用户密码[k]:密码,
        # 用户流水[K]:空列表后续添加信息,
        # 购物车[k]:空字典后续添加用户选择商品信息
    }
    db_handler.save(user_dic)
    # 调用数据包里面的数据库模下面的保存字典函数,并传入已经处理好的用户信息字典
    return True, '注册成功!'  # (True,'注册成功!')此处return向外界返回了两个值,布尔值True 和 字符串‘注册成功’

# 登陆接口功能函数,接收名字与密码两个参数
def login_interface(name, pwd):
    user_dic = db_handler.select(name)  # 调用数据库的select函数功能查找用户是否存在
    # user_dic 接收返回 (用户信息字典/None)
    if not user_dic:  # if not None = if True ,执行内部代码
        return False, '用户不存在!'  # 返回 错误,用户不存在,此处的False是为了给前端flag两种回复方案
    if pwd == user_dic['pwd']:  # 如果输入的密码等于用户信息字典中密码K的值
        return True, '登陆成功!'  # 返回True,登陆成功
    else:
        return False, '密码错误!'  # 返回False,密码错误

# 查看用户余额接口
def check_balance_interface(name):
    # 用户信息/None
    user_dic = db_handler.select(name)
    if not user_dic['balance']:
        return '请充值..'
    return user_dic['balance']

# 注销功能
def logout_interface():
    from core import src
    src.user_info['name'] = None
    return '注销成功'

入门项目 A5-3 interface-user 第三方接口3的更多相关文章

  1. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  2. android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )

    JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类 ...

  3. Java Web系统经常使用的第三方接口

    1. Web Service 接口 1.1 接口方式说明和长处 在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为client去调用第三方提供的接口时,大部分时候都是使用 Web  Se ...

  4. Java Web系统常用的第三方接口

    1.    Web Service 接口 1.1 接口方式说明和优点 在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端去调用第三方提供的接口时,大部分时候都是使用 Web  Se ...

  5. 使用HttpClient调用第三方接口

    最近项目中需要调用第三方的Http接口,这里我用到了HttpClient. 首先我们要搞明白第三方接口中需要我们传递哪些参数.数据,搞明白参数以后我们就可以使用HttpClient调用接口了. 1.调 ...

  6. SpringMVC 结合HttpClient调用第三方接口实现

    使用HttpClient 依赖jar包 1:commons-httpclient-3.0.jar 2:commons-logging-1.1.1.jar 3:commons-codec-1.6.jar ...

  7. 30分钟入门Java8之默认方法和静态接口方法

    30分钟入门Java8之默认方法和静态接口方法 前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方 ...

  8. 根据ip地址从第三方接口获取详细的地理位置

    最近项目某个功能需要根据ip地址从第三方接口获取详细的地理位置,从网上找了很多例子,主要接口有新浪的,淘宝的,腾讯的.试了淘宝的,如果是数量级小的还可以,如果数量级达到上十万级就速度慢了,会导致系统崩 ...

  9. ASP.NET和支付宝合作开发第三方接口的注意事项

    最近公司和支付宝合作开发第三方接口的项目,这里把过程中需要注意的地方说明一下: 前提:一般来说单个银行不接收个人或私企开通支付接口.因此,和第三方支付公司合作,签订合约开放接口就是通行的做法. 流程: ...

  10. 调用支付宝第三方接口(沙箱环境) SpringMVC+Maven

    一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登陆

随机推荐

  1. <转>jmeter(二十三)分布式测试

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  2. 第八节 JS运动基础

    运动基础 让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在 ...

  3. flutter 获取设备屏幕大小

    import 'dart:ui'; var s = window.physicalSize;print(s);

  4. K8S学习笔记之Kubernetes 部署策略详解

    0x00 概述 在Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了. 选择正确的部署策略是要依赖于我们的业务需求的,下面我们 ...

  5. Machine Learning--week2 多元线性回归、梯度下降改进、特征缩放、均值归一化、多项式回归、正规方程与设计矩阵

    对于multiple features 的问题(设有n个feature),hypothesis 应该改写成 \[ \mathit{h} _{\theta}(x) = \theta_{0} + \the ...

  6. POJ3090 Visible Lattice Points

    /* * POJ3090 Visible Lattice Points * 欧拉函数 */ #include<cstdio> using namespace std; int C,N; / ...

  7. C# ToLookup

    下文参考翻译自: C#/.NET Little Wonders: The ToLookup() LINQ Extension Method 故事的背景 让我们先来创建一个简单的类来表示产品,产品有ID ...

  8. Windows Server 2008环境下Apache2.4+Tomcat8配置

    安装步骤 1. 安装配置JDK2. 安装配置Apache3. 安装配置Tomcat4. 启动服务并测试 一.Apache安装与配置 1.Apache解压在D盘根目录下建立一个文件夹Apache Gro ...

  9. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据

    背景 在做接口自动化的过程中,接口返回的数据是  列表字典循环嵌套  格式的,所以怎样通过一个key值,获取到被包裹了多层的目标数据成为了摆在我面前的一个问题. 一开始没想自己写,但是搜索后发现虽然很 ...

  10. 微信端修改title

    function setTitle(t) { document.title = t; var i = document.createElement('iframe'); i.src = "i ...