zoukankan      html  css  js  c++  java
  • 路飞-腾讯云短信接口

    复习

    """
    1、版本管理器:管理在编写代码时,各种代码版本的工具 - 一般在一个需求或是一项功能代码结束后,就称之为一个代码版本
    2、svn和git比较:git服务端与客户端整合,每一个仓库都可以作为客户端也可以作为服务端(集群部署、不怕服务器宕机)、git可以多分支操作,分支管理很强大
    3、git的工作流程:工作区 <=> 暂存区 <=> 版本库 <=> 远程仓库 <=> 版本库
    	增删改查		 	| 		git checkout .
    	git add .			|	   git reset HEAD . (git reset)
    	git commit -m '信息' 	|	   git reset --hard 版本号  (git reflog | gitlog)
    	
    4、基础命令
    	git init
    	git status
    
    5、remote
    	git remote | git remote -v
    	git remote add 源名 地址
    	git remote remove 源名
    
    6、branch
    	git branch
    	git branch 新分支 | git checkout -b 新分支
    	git checkout 分支
    	git branch -d 分支
    	
    7、gitee远程仓库
    	本地仓库提交代码到本地版本库
    	创建远程仓库,将本地主机添加至开发者
    	本地仓库配置远程仓库remote源
    	提交代码到远程仓库
    	
    8、提前配置 - 在第一次提交版本库之前完成
    	本地仓库的全局或局部用户信息
    	本地主机要生成公钥私钥
    	配置仓库的过滤条件
    """
    

    今日内容

    """
    项目开发git
    登录注册页面分析
    腾讯云短信接口
    redis
    """
    

    项目开发 git操作

    基本流程
    """
    1、开发前,拉一次远程仓库
    2、工作区进行开发
    3、将开发结果提交到本地版本库 - git status查看时没有待处理的事件
    4、拉取远程仓库(每一次要提交远程仓库前必须先拉)
    5、如果出现冲突,线下沟通(协商重新开发冲突文件),要重新走3、4步
    6、没有冲突,提交到远程仓库
    """
    
    协同开发
    """
    1)所有人在一个分支上进行开发 - 通常开发分支名为dev
    2)遵循git开发流程:先提交本地版本库,再拉取服务器代码,最后提交代码
    
    提交本地版本库:git commit -m '版本信息'
    拉取服务器代码:git pull 源名 分支名
    提交代码:git push 源名 分支名
    """
    
    冲突解决
    """
    1)打开冲突文件
    2)定位到冲突位置: >>>>>冲突开始 自身代码 ==== 冲突代码 <<<<<<版本号
    3)删除冲突提示信息:>>>>>冲突开始、====、<<<<<<版本号
    4)线下沟通整合自身代码与冲突代码,形成最终代码结果
    5)重新提交本地版本库,再拉取服务器代码,最后提交代码
    """
    
    合并分支
    """
    eg:将dev分支内容合并到prod分支上
    1)切换到prod分支:git checkout prod
    2)合并dev分支:git merge dev
    """
    

    短信

    开通腾讯云短信

    """
    1、官网注册实名账号:https://cloud.tencent.com
    2、选取短信服务创建短信应用
    3、申请签名与短信模板 - 通过微信公众号申请
    """
    

    腾讯云短信二次封装

    libs/txsms/settings.py
    # 短信应用 SDK AppID - SDK AppID 以1400开头
    APP_ID = ...
    # 短信应用 SDK AppKey
    APP_KEY = "..."
    # 短信模板ID,需要在短信控制台中申请
    TEMPLATE_ID = ...
    # 签名 - 是`签名内容`,而不是`签名ID`
    SMS_SIGN= "..."
    # 电话前缀
    MOBILE_PREFIX = 86
    
    libs/txsms/sms.py
    # 通过MacOS ssl安全认证
    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    
    # 获取验证码的功能
    import random
    def get_code():
        code = ''
        for i in range(4):
            code += str(random.randint(0, 9))
        return code
    
    # 短信发送者
    from qcloudsms_py import SmsSingleSender
    from .settings import *
    sender = SmsSingleSender(APP_ID, APP_KEY)
    
    # 发送验证码
    from utils.logging import logger
    def send_sms(mobile, code, exp):
        try:
            # 发送短信
            response = sender.send_with_param(MOBILE_PREFIX, mobile, TEMPLATE_ID, (code, exp), sign=SMS_SIGN, extend="", ext="")
            # 成功
            if response and response['result'] == 0:
                return True
            # 失败
            logger.warning('%s - %s' % ('短信发送失败', response['result']))
        except Exception as e:
            # 异常
            logger.warning('%s - %s' % ('短信发送失败', e))
        return False
    
    libs/txsms/__init__.py
    # 包对外提供的功能方法
    from .sms import get_code, send_sms
    
    测试
    from libs import txsms
    code = txsms.get_code()
    print(code)
    print(txsms.send_sms('电话', code, 5))
    

    redis数据库

    为什么要学习redis
    """
    1、redis是内存 no-sql 数据库,相比mysql等硬盘数据库效率高
    2、在内存中配置数据库使用,而不直接使用内存,redis存储的数据是可以管理的
    3、memcache也是内存数据库,且django默认采用的就是memcache数据库,用redis替换memcache的路由很简单,后者更强大
    	redis支持更多的数据类型
    	redis自带缓存机制,出现数据库系统崩溃数据也是可以有找回的功能
    	redis可以主动完成数据持久化(自带数据持久化功能)
    	redis的数据过期时间机制也可以自身完成
    """
    
    redis安装
    注:在官网安装系统版本,下载对应安装包安装即可
    
    redis数据类型
    """
    支持的数据类型:String、Hash、List、Set、Sorted Set
    
    String:存储其他类型不能存的所有数据
    Hash:存储 key-value 形式数据,类似于字典
    List:存储 一系列有序value 形式数据,列表(数组)
    Set:存储 一系列无序value 形式数据,集合
    Sorted Set:存储 有排列标号value 形式数据,排行
    """
    
    字符串类型
    """ 重要方法
    set:key value
    get:key
    mset:k1 v1 k2 v2 ... kn vn
    mget:k1 k2 ... kn
    setex:key exp value
    """
    
  • 相关阅读:
    MySQL-基本sql命令
    Java for LeetCode 203 Remove Linked List Elements
    Java for LeetCode 202 Happy Number
    Java for LeetCode 201 Bitwise AND of Numbers Range
    Java for LeetCode 200 Number of Islands
    Java for LeetCode 199 Binary Tree Right Side View
    Java for LeetCode 198 House Robber
    Java for LeetCode 191 Number of 1 Bits
    Java for LeetCode 190 Reverse Bits
    Java for LeetCode 189 Rotate Array
  • 原文地址:https://www.cnblogs.com/DcentMan/p/11844616.html
Copyright © 2011-2022 走看看