rest_frame、git

一、对rest api的认识

http://www.cnblogs.com/wupeiqi/articles/7805382.html
http://www.ruanyifeng.com/blog/2014/05/restful_api.html

原来web应用程序时,根据url不同定位到不同视图函数处理。 以前 10个表 就得40个url
rest是一种规范; 面向资源
http://api.luffycity.com/v1/users/
- 协议:
http
https
- 域名:
api.luffycity.com (跨域cors http://www.cnblogs.com/wupeiqi/articles/5703697.html)
www.luffycuty.com/api
- 版本:

- url中是名词

- 根据method不同执行不同的函数 get / post / delete / put / patch

- 返回状态码 200 成功 / 301 / 302 重定向 /404 找不到资源/ 500 服务器问题

- 错误信息:
{
msg:"用户名或密码错误"
}

- 返回值:
http://api.luffycity.com/v1/users
http://api.luffycity.com/v1/users/1

- 条件
http://api.luffycity.com/v1/users/?page=1&size=10
ps: 主键ID体现在URL上

- hyperlink
{
id:"老司机",
age:18,
group:"http://api.luffycity.com/v1/group/1/"
}

二、rest-framework视图里继承了哪些类?

from rest_framework.views import APIView

from rest_framework import viewsets

viewsets.ModelViewSet
mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,

mixins.DestroyModelMixin,

mixins.ListModelMixin,

GenericViewSet

model和对象序列化不同之处:many = true many=false

 

三、rest-framework哪些组件?

  路由 视图 (as_view view disptach)  版本 认证 权限 频率  (反射)解析器(request.data) 序列化(数据是否合法,序列化,校验)
分页 渲染器(样式)

- 认证 / 权限 / 频率 / 序列化(序列化,校验)

- 看完源码,有什么体会,总结出,哪里不错,哪里设计的比较好。

- 知识:
-- 封装,认证。
-- 配置,中间件配置 //开放封闭原则;字符串 只要改配置就能生效;

- 问题:
代码。。。
报警功能; baojing 代码。。。
发送邮件 短信 微信提醒时, 编程思想;
配置,str 调用相关的模块 类

 

四、rest-framework哪些重要?

列表生成式 反射 面向对象 因为最近 再看restframework源码; cbv反射来做; 认证,封装。

 

五、rest-framework 版本?

http://www.cnblogs.com/wupeiqi/articles/7805382.html

- http://www.luffycity.com/api/v1/users
- http://www.luffycity.com/api/v2/users

url(r'^(?P<version>[v1|v2]+)/test/', TestView.as_view(), name='test'),

REST_FRAMEWORK = {
'DEFAULT_VERSION': 'v1', # 默认版本
'ALLOWED_VERSIONS': ['v1', 'v2'], # 允许的版本
'VERSION_PARAM': 'version' # URL中获取值的key
}

# 获取版本
print(request.version)
# 获取版本管理的类
print(request.versioning_scheme)
# 反向生成URL
reverse_url = request.versioning_scheme.reverse('test', request=request)
print(reverse_url)

 

  (面试题)
    1.谈谈你对 rest api的认识
        http://www.cnblogs.com/wupeiqi/articles/7805382.html
        原来web应用程序时,根据url不同定位到不同视图函数处理。 以前 10个表 就得40个url
        rest是一种规范; 面向资源
            http://api.luffycity.com/v1/users/
            - 协议:
                http
                https
            - 域名:
                api.luffycity.com
                www.luffycuty.com/api
            - 版本:

            - url中是名词

            - 根据method不同执行不同的函数 get / post / delete / put / patch

            - 返回状态码  200 成功 / 301 / 302 重定向 /404  找不到资源/  500 服务器问题

            - 错误信息:
                {
                    msg:"用户名或密码错误"
                }

            - 返回值:
                http://api.luffycity.com/v1/users
                http://api.luffycity.com/v1/users/1

            - 条件
                http://api.luffycity.com/v1/users/?page=1&size=10
                ps: 主键ID体现在URL上

            - hyperlink
                {
                    id:"老司机",
                    age:18,
                    group:"http://api.luffycity.com/v1/group/1/"
                }

    2. rest-framework视图里继承了哪些类? model和对象序列化不同之处:many = true many=false

    3. django rest framework 都有哪些组件
        - 10个组件
            按顺序来说: 10个组件
            。。
            路由 视图 (as_view view disptach)  版本 认证 权限 频率  (反射)解析器(request.data) 序列化(数据是否合法,序列化,校验)
            分页  渲染器(样式)

        -  认证 / 权限 / 频率 / 序列化(序列化,校验)

        - 看完源码,有什么体会,总结出,哪里不错,哪里设计的比较好。

        - 知识:
            -- 封装,认证。
            -- 配置,中间件配置    //开放封闭原则;字符串 只要改配置就能生效;

        - 问题:
            代码。。。
            报警功能; baojing 代码。。。
            发送邮件 短信 微信提醒时, 编程思想;
            配置,str 调用相关的模块 类

    4. 谈谈你觉得 哪些比较重要
        列表生成式 反射 面向对象 因为最近 再看restframework源码; cbv反射来做; 认证,封装。

    5.版本:
        http://www.cnblogs.com/wupeiqi/articles/7805382.html

        - http://www.luffycity.com/api/v1/users
        - http://www.luffycity.com/api/v2/users

        url(r'^(?P<version>[v1|v2]+)/test/', TestView.as_view(), name='test'),

        REST_FRAMEWORK = {
            'DEFAULT_VERSION': 'v1',            # 默认版本
            'ALLOWED_VERSIONS': ['v1', 'v2'],   # 允许的版本
            'VERSION_PARAM': 'version'          # URL中获取值的key
        }

        # 获取版本
        print(request.version)
        # 获取版本管理的类
        print(request.versioning_scheme)
        # 反向生成URL
        reverse_url = request.versioning_scheme.reverse('test', request=request)
        print(reverse_url)

---------------
今日内容:
    1.ContentType
    2.CORS
    3.Git

--------------
内容详细:
    1.ContentType
        背景:专题课,学位课,价格策略
        问题:设计表结构
        。。。
    2.CORS
        。。
        http://www.cnblogs.com/wupeiqi/articles/5703697.html

    - rest api 10条规范
    - rest framework 10个组件
    - contenttype
    - cors jsonp
        - 响应头
        - 简单和复杂请求
笔记

 

六、git

1.如何进行协同开发?
为每个人创建一个分支,合并到dev。有冲突,就要解决冲突;继续提交;
master
dev
review(组长做代码的review)
alice
xxx

2.公司出现bug怎么办?
创建一个bug分支,在bug分支上进行修复,修复完成后合并到master上。

3.git rebase 作用?
rebase: 合并,将提交记录提交到一条主线上,记录更加整洁。
产生冲突:
合并
解决冲突
git rebase --skip

merge: 至少两条线上,保留每次提交的记录。

4.协同开发,三种方法
- 项目合作者
- 创建组织,邀请成员
贡献代码:
- fork (pull request)

合作者 组织 fork (new pull request)

1.git作用:
    版本控制
2.git命令:
    git init
    git add .
    git status
    git log
    git reflog
    git reset --hard
    git commit -m "xxx"
    git checkout

 




posted @ 2018-07-07 10:29  Alice的小屋  阅读(144)  评论(0编辑  收藏  举报