• 10-29 课堂笔记


    复习

    """
    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
    """
    

    redis数据库

    # 1.安装redis与可视化操作工具
    
    # 2.在服务中管理redis服务器的开启关闭
    
    # 3.命令行简单使用redis:
    	-- redis-cli  # 启动客户端
        -- set key value  # 设置值
        -- get key  # 取出值
        
    # 4.redis支持:字符串、字典、列表、集合、有序集合
    # https://www.runoob.com/redis/redis-tutorial.html
    
    # 5.特点:可持久化、单线程单进程并发
    

    python使用redis

    依赖
    >: pip3 install redis
    
    直接使用
    import redis
    r = redis.Redis(host='127.0.0.1', port=6379)
    
    连接池使用
    import redis
    pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
    r = redis.Redis(connection_pool=pool)
    
    缓存使用:要额外安装 django-redis
    # 1.将缓存存储位置配置到redis中:settings.py
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "CONNECTION_POOL_KWARGS": {"max_connections": 100}
            }
        }
    }
    
    # 2.操作cache模块直接操作缓存:views.py
    from django.core.cache import cache  # 结合配置文件实现插拔式
    # 存放token,可以直接设置过期时间
    cache.set('token', 'header.payload.signature', 10)
    # 取出token
    token = cache.get('token')
    
  • 相关阅读:
    SpringMVC中web.xml中url配置路径 / 和 /* 的区别
    spring mvc @RequestMapping method 不写的话,默认GET、POST都支持,根据前端方式自动适应
    MyBatis项目所引用的一切依赖jar包和自定义设置
    Python 代码性能优化技巧
    linux basic commands
    linuxx virutal machine installation
    安装 Django
    virtualenv (isolated virtual environment) for python runtime
    夜间模式的开启与关闭,父模板的制作
    完成登录与注册页面的前端
  • 原文地址:https://www.cnblogs.com/suwanbin-thought/p/11762471.html
Copyright © 2020-2023  润新知