• python django 创建虚拟环境


    DRF---django-rest-framework:
    
    1.通过一个案例简单回顾一下django,
    
    
    一.前后端分离,不分离
    不分离:前端页面的显示,都是由后端返回的,就是说后端处理了参数,数据库,之后返回给了前端一个渲染之后的html页面,这种应用模式比较适合纯网页应用。一般使用render进行一个数据返回,把数据塞到模版里。
    
    分离:前端通过ajax或者anxios请求数据,拿到数据,自己来展示;后端只提供你要的数据格式(json,xml等)就可以了
    
    1.为什么要进行前后端分离(优点):
    (1)pc,app(andrio,ios),pad多客户端适应,不能每个客户端都写一个接口吧
    (2)前后端开发职责不清(要将前端的页面,改成模版页面,所以后端的哥们必须要懂一些前端的知识,而前端的哥们要展示数据他就必须要会写我们python的模版语法)
    (3)开发效率低,互相等待
    (4)一旦后端要改了语言,那么前端的html里面的模版语言也都要重写!这就是我们所说的高耦合
    
    2.前后端分离缺点:
    1.成本增加,前端要学习ajax网络请求等,后端要配合前端,给他想要的数据格式
    2.前端工作量提升了
    3.数据交互,必须要有文档来支撑
    
    二.restful api:是什么
    1.轻量级,一般通过http或者https协议,不需要额外的协议!常用的方法post,get,put,delete,(patch,options不常用)
    2.面向资源,一目了然,具有意义(增删改查,都是动词,但是URI里要求是名词)
    GET /zoos:列出所有动物园
    POST /zoos:新建一个动物园
    GET /zoos/ID:获取某个指定动物园的信息
    PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
    3.一般通过json或者xml
    4.版本(Versioning)应该将API的版本号放入URL。
    http://www.example.com/app/1.0/foo
    http://www.example.com/app/1.1/foo
    5.状态码(Status Codes)
    200,404,500
    
    三.序列化与反序列化的概念
    序列化(encoding):把python对象编码转换成Json字符串。
    反序列化(decoding):把json格式字符串解码为python对象。
    
    四.什么是DRF
    1.DRF是一个在django基础之上进行二次开发的一个前后端分离的web框架,他是严格遵守restful api规范的!,这也就是说为什么之前我们介绍了那么多
    2.回顾一下django是怎么样创建项目的
    django 数据库的常见的5种操作
    增删改查(单一,查多条的)
    
    五.为什么要用DRF?
    说白了,DRF做了很多重复性的工作,而且也帮助我们做了很多数据的优化与调整
    
    六.Django REST framework 简介
    1.在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。
    2.在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的:
    增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
    删:判断要删除的数据是否存在 -> 执行数据库删除
    改:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
    查:查询数据库 -> 将数据序列化并返回
    Django REST framework可以帮助我们简化上述的代码编写,大大提高REST API的开发速度。
    7.认识Django REST framework
    
    
    Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。
    通常简称为DRF框架 或 REST framework。
    DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。
    特点
    •提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
    •提供了丰富的类视图、Mixin扩展类,简化视图的编写;
    •丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
    •多种身份认证和权限认证方式的支持;
    •内置了限流系统;
    •直观的 API web 界面;
    •可扩展性,插件丰富
    资料:
    •官方文档
    •Github源码
    
    
    测测试数据
    insert into users (id,nick_name,gender,image,add_time,mobile) values (1,"张三",0, "images/1.jpg","2010-11-12",""),(2,"李四",0, "images/2.jpg","2011-11-12",""),(3,"王五",0, "images/3.jpg","2012-11-12","");
    
    创建项目:
    安装包:
    Pip install djangorestframework
    
    配置
    Install apps
    ’rest_framework’
  • 相关阅读:
    mysql备份与binlog
    linux释放cached
    linux下mysql迁移到其他分区
    java分析jvm常用指令
    Mac下安装WebStrom
    Final
    Spring 复习
    ubuntu 14.4安装java环境
    php复习
    java 重难点
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/9879320.html
Copyright © 2020-2023  润新知