为开源项目贡献代码

# github,gitee 看到好的开源项目,  发现有bug,为他增加新功能---》你加入了代码---》想合并进开源项目,如何做

# 步骤:
    1 先fork开源项目--》复制这个项目到我的仓库中
    2 clone下来,改代码,一路提交到远端(我的)
    3 提交pr,等作者同意

pycharm使用git

只要用命令操作的,都可以点击完成,只需要点点点

登录注册功能分析

接口分析
    5 校验手机号是否存在的接口
    1 多方式登录接口:用户名/手机号/邮箱 +密码都可以登录
    2 发送手机验证码接口   (接助于第三方短信平台) 
    3 短信登陆接口
    4 注册接口

手机号是否存在接口

url.py

在总路由里面做好路由分发之后  在分路由里面写
from rest_framework.routers import SimpleRouter
from . import views

router = SimpleRouter()
# http://127.0.0.1:8000/api/v1/user/userinfo/send_sms/  get请求 
router.register('userinfo', views.UserView, 'userinfo')
urlpatterns = [

]
urlpatterns += router.urls

views.py

from rest_framework.viewsets import GenericViewSet
from rest_framework.decorators import action
from .models import User
from utils.common_response import APIResponse


class UserView(GenericViewSet):
    @action(methods=['GET'], detail=False)  # 保证这个接口的安全(短信轰炸机==) 解析除了好多网站的发送短信接口,用多线程
    def send_sms(self, request, *args, **kwargs):
        try:
            # 从地址栏中取出手机号 query_params : queryDict
            mobile = request.query_params['mobile']
            User.objects.get(mobile=mobile)
        except Exception as e:
            raise e
        # return APIResponse(code=777,msg='手机号不存在')
        return APIResponse(msg='手机号存在')

视图函数模板

 def send_sms(self, request, *args, **kwargs):
        try:
            写视图代码 有异常抛出,然后封装的全局异常代码接收 
        except Exception as e:
            raise e
        return APIResponse()

多方式登录接口

使用 用户名,手机号,邮箱+密码登录

post--{username:3@qq.com,password:123}