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’
python django 创建虚拟环境的更多相关文章
- python 3 创建虚拟环境(Win10)
python 3 创建虚拟环境(Win10) ①为什么要用虚拟环境? 为了解决一个环境多个项目的版本冲突问题 ②如何创建虚拟环境? 用窗口键+R来打开win10的运行窗口,然后在运行输入框输入cmd, ...
- Python - Virtualenv 创建虚拟环境
Virtualenv 回到顶部 为了解决各个项目的共同依赖同一个环境,造成版本冲突等,virtualenv创建一个干净的环境,在这个环境下,进行Python项目的开发等,就成为一个个独立的项目,从而避 ...
- python中创建虚拟环境
# virtualenv 虚拟环境安装 pip install virtualenv # 创建虚拟环境 virtualenv [虚拟环境名称] # 进入虚拟环境 windows : 进入 ...
- python (创建虚拟环境)
Python python 介绍 Python是一门计算机编程语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的 ...
- linux系统 python升级创建虚拟环境
Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替之前的virtualenv. 该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持.每一个虚拟环境都有其自 ...
- Windows下利用virtualenvwrapper指定python版本创建虚拟环境
默认已安装virtualenvwrapper 一.添加环境变量(可选) 在系统环境变量中添加 WORKON_HOME ,用来指定新建的虚拟环境的存储位置,如过未添加,默认位置为 %USERPROFIL ...
- python Django 创建应用
如图输入如下命令 python manage.py startapp apitest 添加应用到 autotest项目项目下 在settings.pyo 中加入“apitest”,如下图 创建视图 在 ...
- python+Django创建第一个项目
1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...
- python - django (创建到运行流程)
a = 0 """ 1. 创建 Django 操作文件 a. cmd 中选择路径: cd C:\Users\ad\PycharmProjects\index\1\文件名 ...
随机推荐
- php导出csv
1.导出有很多种,他有自带包的导出,但是如果你要导出7,8千的数据的话就有点困难,我最近发现一个导出可以到出1万的数据,好像只能导出csv格式的. public function down_load( ...
- LeetCode 958. 二叉树的完全性检验
958. 二叉树的完全性检验 显示英文描述 我的提交返回竞赛 用户通过次数119 用户尝试次数157 通过次数123 提交次数378 题目难度Medium 给定一个二叉树,确定它是否是一个完全二 ...
- PHP手册-函数参考-日期与时间相关扩展
一.Calander.日期/时间.HRTime扩展的对比 Calendar 日期/时间 HRTime 简介 历法扩展集包括了一系列用于在不同历法间进行转换的函数,它是以Julian Day计数为中 ...
- SQL 查询语句
4.2 单表查询 4.2.1 列名(表名)的别名(as 可以不加) 给列名取别名既可以加 as 也可以不加. (2008 - Sage.lower(Sdept)等可计算但无列名,需要指定列名) 原列名 ...
- 通过cassandra-cli客户端了解cassandra的内部数据结构
和cassandra数据库交互的方式有两种,一种是通过类似于cassandra-cli命令的thrift api,或者通过cassandra提供的cql(cassandra query lanugag ...
- Hadoop格式化 From hu-hadoop1/192.168.11.11 to hu-hadoop2:8485 failed on connection exception: java.net.
192.168.11.12:8485: Call From hu-hadoop1/192.168.11.11 to hu-hadoop2:8485 failed on connection excep ...
- C++ leetcode Longest Palindromic Substring
明天就要上课了,再过几天又要见班主任汇报项目进程了,什么都没做的我竟然有一种迷之淡定,大概是想体验一波熬夜修仙的快乐了.不管怎么说,每天还是要水一篇博文,写一个LeetCode的题才圆满. 题目:Gi ...
- oracle 常用字符串函数
select initcap('guodongdong') from dual; /返回字符串并将字符串的第一个字母变为大写; s ...
- Django信息安全相关之CSRF和XSS
什么是xss攻击 xss攻击:黑客把恶意的JS脚本提交到后端,后端把恶意脚本渲染显示出来 什么是CSRF? 1.你登录建行官网后 你的浏览器就保存了建行网站的cokie,(如果不关闭这个页面c ...
- 在Linux下面如何查看tomcat已经使用多少线程(Threads)
先用 ps aux |grep tomcat 查看tomcat的 PID 再用 ps -T -p <PID>|wc -l 查看线程