美文网首页
python web(bottle框架)知行合一之-简单知识付费

python web(bottle框架)知行合一之-简单知识付费

作者: 小钟钟同学 | 来源:发表于2018-04-25 00:32 被阅读23次

python web(bottle框架)知行合一之-简单知识付费平台-”全栈“实践(10)---注册接口

PS:笔记只是为了更好表达我怎么语言表述,有些时候可能难免废话一推!
因知识有限, 如有错误, 欢迎指正!

每日细语:不要辜负了青春的大好时光!

续言

这几天一直忙着练车应付考试,现在终于过了,心里的一块石头也算暂时的落下了!
回顾前面的几篇的简述,我们已经开始接着继续进行相关服务接口的开发之中,本期主要讲解的是注册接口:

需求分析

当用户提交相关的帐号和密码进行注册的时候,如果发现相关帐号信息已经被注册了,那么提示已注册,如果没有则直接的添加一条记录,并返回提示注册成功!

需求实现过程:

1:回顾登入接口服务

#!/usr/bin/evn python
# coding=utf-8
# + + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + + ++ + 
"""
Author = zyx
@Create_Time: 2018/4/20 15:27
@version: v1.0.0
@Contact: 308711822@qq.com
@File: login.py
@文件功能描述: 登入服务接口
"""
from bottle import get, post, request
from base_framework.net import web_helper, session_helper
from business_logic.api_db_logics import user_info_logic
from base_framework.utils import json_helper


@get('/api/v1/user/login/')
@post('/api/v1/user/login/')
def callback():
    '''登入'''

    '''1:获取用户提交过来的手机号码 和 密码进行验证 是否已经注册过-----其实这里还可以进一步的进行封装'''

    if request.method.upper() in ('POST', 'PUT', 'DELETE'):
        phone_num = web_helper.get_form('phone_num', '用户号码')  # 默认开启 不能为空的验证
        pass_word = web_helper.get_form('pass_word', '用户密码')  # 默认开启 不能为空的验证
    else:
        phone_num = web_helper.get_query('phone_num', '用户号码')  # 默认开启 不能为空的验证
        pass_word = web_helper.get_query('pass_word', '用户密码')  # 默认开启 不能为空的验证

    '''2:根据用户的手机号码,进行验证是否已注册,如果已经注册的话,那就再判断密码是否正确-----其实这里还可以进一步的进行封装'''

    u = user_info_logic.check_by_get(phone_num)
    
    if not u:
        return web_helper.return_msg("9999", "亲!您还没有注册")

    if u.get('pass_word') != pass_word:
        return web_helper.return_msg("9999", "亲!您的密码被狗吃了")

    '''3:写入相关的session信息到本地上'''
    s = session_helper.get_session()
    s['phone_num'] = phone_num
    s['pass_word'] = pass_word
    s.save()

    return web_helper.return_msg("0000", "登入成功!")

说明:在登入的接口服务中,我们把相关所有设计的到用户信息操作的都放置到了一个叫做user_info_logic.py的逻辑处理模块中.


#!/usr/bin/evn python
# coding=utf-8
"""
Author = zyx
@Create_Time: 2018/4/20 15:57
@version: v1.0.0
@Contact: 308711822@qq.com
@File: user_info_logic.py
@文件功能描述: 用户信息表的一些封装
"""

from business_logic.db_model.knowledgepay_model import UserInfo, session_scope, model_to_dict, CourseOrder
from base_framework.utils import json_helper


# 检查手机号码记录是否已有记录
def check_by_get(phone_num=''):
    with session_scope():
        # 说明.get_or_none
        result = UserInfo.get_or_none(UserInfo.phone_num == phone_num)
        if result:
            result = json_helper.class_to_dict(result)
        return result


2:新增注册服务接口路由:

#!/usr/bin/evn python
# coding=utf-8
"""
Author = zyx
@Create_Time: 2018/4/20 15:27
@version: v1.0.0
@Contact: 308711822@qq.com
@File: register.py
@文件功能描述: 登入服务接口
"""
from bottle import get, post, request
from base_framework.net import web_helper, session_helper
from business_logic.api_db_logics import user_info_logic
from base_framework.utils import json_helper

@get('/api/v1/user/register/')
@post('/api/v1/user/register/')
def callback():
    '''登入'''

    '''1:获取用户提交过来的手机号码 和 密码进行验证 是否已经注册过-----其实这里还可以进一步的进行封装'''

    if request.method.upper() in ('POST', 'PUT', 'DELETE'):
        phone_num = web_helper.get_form('phone_num', '用户号码')  # 默认开启 不能为空的验证
        pass_word = web_helper.get_form('pass_word', '用户密码')  # 默认开启 不能为空的验证
    else:
        phone_num = web_helper.get_query('phone_num', '用户号码')  # 默认开启 不能为空的验证
        pass_word = web_helper.get_query('pass_word', '用户密码')  # 默认开启 不能为空的验证

    '''2:根据用户的手机号码,进行验证是否已注册,如果已经注册的话,那就再判断密码是否正确-----其实这里还可以进一步的进行封装'''
    result, is_create = user_info_logic.check_or_create(pn=phone_num, pwd=pass_word)
    if not is_create:
        return web_helper.return_msg("9999", "该帐号已经注册了!")
    return_date = {
        "data": result
    }
    return web_helper.return_msg("0000", "注册成功!", return_date)

3:在user_info_logic.py的逻辑处理模块中新增一个注册插入数据库函数

# 如果已经有了记录则直接的返回记录,否则直接的创建的新的记录
def check_or_create(pn='', pwd=''):
    with session_scope():
        # 说明.get_or_create
        result, is_create = UserInfo.get_or_create(phone_num=pn, pass_word=pwd)
        if result:
            result = json_helper.class_to_dict(result)
            del result['id'];  # 删除键是'id'的条目
        return result, is_create

接口测试:

image.png image.png

结束

注册的逻辑其实也很简单,就是
1:查看数据库有没有此用户存在
2:没有用户就直接插入数据库一条记录
3:然后~然后我就结束了这章了!!!

以上笔记纯属个人学习实践总结,有兴趣的同学可以加群一起学习讨论QQ:308711822

相关文章

网友评论

      本文标题:python web(bottle框架)知行合一之-简单知识付费

      本文链接:https://www.haomeiwen.com/subject/nxzslftx.html