一、Git
1、git是一个用于帮助用户实现版本控制的软件。
git的命令:
git init 初始化
git status 查看当前文件夹的状态
git add 文件名 对指定的文件进行版本控制
git add . 对指定文件夹下的所有文件及子目录进行版本控制
git commit -m '详细的描述信息' 创建提交记录 (版本)
git log 查看提交记录,即:历史版本记录
git reflog 回滚到之前的版本
git reset --hard 提交记录(版本号)
2、stash相关常用命令:
git stash作用,帮助我们暂时存储已经开发一些功能的代码,继续做其他事情,做完之后,再回来继续开发
git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态
git stash list 查看“某个地方”存储的所有记录
git stash clear 清空“某个地方”
git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突)
git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)
git stash drop 编号,删除指定编号的记录
3、branch相关常用命令:
git branch 分支名称 创建分支
git checkout 分支名称 切换分支
git branch -m 分支名称 创建并切换到指定分支
git branch 查看所有分支
git branch -d 分支名称 删除分支
git merge 分支名称 将指定分支合并到当前分支
面试题:如果代码出现bug,你们是如何解决?
创建一个bug分支,然后进行bug处理,处理完毕后,合并到master分支。
删除bug分支
回到dev分支继续开发。
4、GIThub相关的命令:
需要一个代码托管的网站:github、Bitbucket、码云
自己创建代码托管的网站:gitlab
注册账号:
用户名:邮箱
密码:admin123
命令:
git remote add origin .........
git push origin dev
git clone https://github.com/WuPeiqi/dbhot.git
git pull origin dev
git fetch origin dev
git merge origin/dev 改: git rebase origin/dev
git pull origin master
git fetch origin master
git merge origin/master
面试题: git rebase的作用?
保持提交记录的整洁。
5、多人协同开发
(1)允许他人操作程序
—合作者
—创建组织
(2)分支
—master
—dev
(3)规则
一起合并
以一个小的功能合并一次或者一到两天合并一次
问题:如果你要在github上给别人代码添加功能?
fork pull request
其他:
a. 不用反复输入用户名密码登录
Https:
https://用户名:密码@github.com/WuPeiqi/dbhot.git
git remote add origin https://用户名:密码@github.com/WuPeiqi/dbhot.git
SSH:
git@github.com:WuPeiqi/dbhot.git
b. .gitignore文件
c. 版本
git tag -a v1.0 -m '版本介绍' 本地创建Tag
git show v1.0 查看
git tags -n 查看本地Tag
git tag -l 'v1.4.2.*' 查看本地Tag,模糊匹配
git tag -d v1.0 删除Tag
git push origin :refs/tags/v0.2 更新远程tag
git checkout v.10 切换tag
git fetch origin tag V1.2
git push origin --tags
git pull origin --tags
git clone -b v1.0 https://github.com/WuPeiqi/dbhot.git
二、redis
mysql是一个软件,帮助开发者对一台机器的硬盘进行操作。
redis是一个软件,帮助开发者对一台机器的内存进行操作。
关键字:
缓存,优先去redis中获取,如果没有就是数据库。
基本使用:
a. import redis 创建连接 conn = redis.Redis(host='47.94.172.250',port=6379,password='luffy1234') conn.set('x1','wanghuaqiang',ex=5) val = conn.get('x1') print(val) b. 连接池 import redis pool = redis.ConnectionPool(host='10.211.55.4', port=6379,password='luffy1234',max_connections=1000) conn = redis.Redis(connection_pool=pool) conn.set('foo', 'Bar')
注意:连接池只创建一次
本质:
本质,维护一个已经和服务端连接成功的socket。
以后再次发送数据时,直接获取一个socket,直接send数据。
1、redis是什么?
用于操作内存的软件。
特点:
- 可以做持久化:
- AOF
- RDB
- 单进程单线程
- 5大数据类型
redis={
k1:'123', 字符串
k2:[1,2,3,4,4,2,1], 列表
k3:{1,2,3,4}, 集合
k4:{name:123,age:666}, 字典
k5:{('alex',60),('eva-j',80),('rt',70),},有序集合
}
使用字典:
基本操作
慎重使用hgetall,优先使用hscan_iter
计数器
注意事项:redis操作时,只有第一层value支持:list,dict ....
应用(django):
1. 自定义使用redis
2. 使用第三方组件
pip3 install django-redis
配置:
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}
# "PASSWORD": "密码",
}
}
}
使用:
import redis
from django.shortcuts import render,HttpResponse
from django_redis import get_redis_connection
def index(request):
conn = get_redis_connection("default")
return HttpResponse('设置成功')
def order(request):
conn = get_redis_connection("back")
return HttpResponse('获取成功')
高级使用:
1. 全站缓存
2. 单视图
3. 局部页面
补充:rest framework框架访问频率限制推荐放到 redis/memecached
2、使用连接池
本质,维护一个已经和服务端连接成功的socket。
以后再次发送数据时,直接获取一个socket,直接send数据。
3、做代码review
如何做代码review?
- 创建review分支:
谁来锁代码review?
- 组长
- 带你的人
4、支付宝支付
- 加密方式:rsa
- 公钥私钥:
- 商户私钥
- 支付宝公钥
- 支付成功后,断电宕机
- 成功:return HttpResponse('success')
5、原生Ajax
- XMLHttpRequest