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’

python django 创建虚拟环境的更多相关文章

  1. python 3 创建虚拟环境(Win10)

    python 3 创建虚拟环境(Win10) ①为什么要用虚拟环境? 为了解决一个环境多个项目的版本冲突问题 ②如何创建虚拟环境? 用窗口键+R来打开win10的运行窗口,然后在运行输入框输入cmd, ...

  2. Python - Virtualenv 创建虚拟环境

    Virtualenv 回到顶部 为了解决各个项目的共同依赖同一个环境,造成版本冲突等,virtualenv创建一个干净的环境,在这个环境下,进行Python项目的开发等,就成为一个个独立的项目,从而避 ...

  3. python中创建虚拟环境

    # virtualenv 虚拟环境安装 pip install virtualenv # 创建虚拟环境        virtualenv [虚拟环境名称] # 进入虚拟环境 windows : 进入 ...

  4. python (创建虚拟环境)

    Python python 介绍 Python是一门计算机编程语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的 ...

  5. linux系统 python升级创建虚拟环境

    Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替之前的virtualenv. 该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持.每一个虚拟环境都有其自 ...

  6. Windows下利用virtualenvwrapper指定python版本创建虚拟环境

    默认已安装virtualenvwrapper 一.添加环境变量(可选) 在系统环境变量中添加 WORKON_HOME ,用来指定新建的虚拟环境的存储位置,如过未添加,默认位置为 %USERPROFIL ...

  7. python Django 创建应用

    如图输入如下命令 python manage.py startapp apitest 添加应用到 autotest项目项目下 在settings.pyo 中加入“apitest”,如下图 创建视图 在 ...

  8. python+Django创建第一个项目

    1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...

  9. python - django (创建到运行流程)

    a = 0 """ 1. 创建 Django 操作文件 a. cmd 中选择路径: cd C:\Users\ad\PycharmProjects\index\1\文件名 ...

随机推荐

  1. 导出csv文件数字会自动变科学计数法的解决方法

    其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0.解决 ...

  2. hdu 3591 多重加完全DP

    题目: The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (J ...

  3. jq判断网页是在什么浏览器打开的

    有的时候项目中有需要用户扫描二维码进行页面识别跳转操作的,(类似当前需要先判断是否为手机默认浏览器打开,尤其是微信打开会影响APP包的下载-微信内置的一个拦截,这对Android来说影响有点大),因此 ...

  4. Oracle 11.2.0.4.0 Dataguard部署和日常维护(3)-Datauard监控篇

    1.  v$database    查看当前数据库的角色和保护模式 primary库查看 column NAME format a10 column PROTECTION_MODE format a2 ...

  5. 四、持久层框架(Hibernate)

    一.一级缓存与二级缓存 1.一级缓存:Hibernate默认是开启一级缓存的,一级缓存存放在session里,一个Session做一次查询操作,会把这个操作的结果放在一级缓存中,如果短时间内这个ses ...

  6. 解决SSH Secure Shell 连接Liunx 有乱码情况。

    输入:echo $LANG:查看当前使用系统语言 locale :安装是否是LANG="zh_CN.UTF-8":说明已经安装中文语言 步骤1:用root账户登录linux系统,或 ...

  7. docker安装使用教程(Kali2.0)

    一.apt安装 apt直接安装是最好的,因为apt源中的其他docker相关组件,也是与docker匹配的版本. apt-get install docker docker-compose 二.手动安 ...

  8. oracle create tablespace

    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; sqlplus shybt/shybt@127.0.0.1:1521/orcl Cr ...

  9. js之querySelector方法

    querySelector()接受一个CSS选择符,返回匹配的第一个元素,反之则NULL. 如: var body = document.querySelector('body'); var mydi ...

  10. PAT-GPLT训练集 L1-043 阅览室

    PAT-GPLT训练集 L1-043 阅览室 注意:连续的S和E才算一次借还 代码: #include<iostream> #include<cstdio> using nam ...