![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Django
文章平均质量分 74
dongge-destiny
这个作者很懒,什么都没留下…
展开
-
1.django简介
1. 简介Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT...原创 2018-07-03 21:09:19 · 414 阅读 · 0 评论 -
django-admin
使用Admin站点假设我们要设计一个新闻网站,我们需要编写展示给用户的页面,网页上展示的新闻信息是从哪里来的呢?是从数据库中查找到新闻的信息,然后把它展示在页面上。但是我们的网站上的新闻每天都要更新,这就意味着对数据库的增、删、改、查操作,那么我们需要每天写sql语句操作数据库吗? 如果这样的话,是不是非常繁琐,所以我们可以设计一个页面,通过对这个页面的操作来实现对新闻数据库的增删改查操作。那么问...原创 2018-07-04 10:59:30 · 283 阅读 · 0 评论 -
django-REST framework简介
Web应用模式在开发Web应用中,有两种应用模式:前后端不分离前后端分离1 前后端不分离在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为...原创 2018-07-04 11:09:52 · 578 阅读 · 0 评论 -
django-restful设计方法
RESTful设计方法1. 域名应该尽量将API部署在专用域名之下。https://api.example.com如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。https://example.org/api/2. 版本(Versioning)应该将API的版本号放入URL。http://www.example.com/app/1.0/foohttp://www.exampl...原创 2018-07-04 11:10:36 · 260 阅读 · 0 评论 -
django开发REST 接口
使用Django开发REST 接口我们以在Django框架中使用的图书英雄案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发。在此案例中,前后端均发送JSON格式数据。# views.pyfrom datetime import datetimeclass BooksAPIVIew(View): """ 查询所有图书、增加图书 ""...原创 2018-07-05 08:24:46 · 483 阅读 · 0 评论 -
django-rest接口开发核心任务
REST接口开发的核心任务分析一下上节的案例,可以发现,在开发REST API接口时,视图中做的最主要有三件事:将请求的数据(如JSON格式)转换为模型类对象操作数据库将模型类对象转换为响应的数据(如JSON格式)序列化Serialization维基百科中对于序列化的定义:序列化(serialization)在计算机科学的资料处理中,是指将数据结构或物件状态转换成可取用格式(例如存成档案,存于缓冲...原创 2018-07-05 08:24:56 · 173 阅读 · 0 评论 -
django-Django REST framework
Django REST framework 简介在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的:增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列...原创 2018-07-05 08:25:23 · 205 阅读 · 0 评论 -
django-Serializer序列化使用
Serializer序列化器定义Serializer1. 定义方法Django REST framework中的Serializer使用类来定义,须继承自rest_framework.serializers.Serializer。例如,我们已有了一个数据库模型类BookInfoclass BookInfo(models.Model): btitle = models.CharField(m...原创 2018-07-05 08:25:40 · 3428 阅读 · 2 评论 -
django-反序列化使用
反序列化使用1. 验证使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型类对象。在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返回False。验证失败,可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误。如果是非字段错误,可以通过修改REST framework配置中的NON_FIEL...原创 2018-07-05 08:25:50 · 1112 阅读 · 0 评论 -
django-模型类序列化器ModelSerializer
模型类序列化器ModelSerializer如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类。ModelSerializer与常规的Serializer相同,但提供了:基于模型类自动生成一系列字段基于模型类自动为Serializer生成validators,比如unique_togeth...原创 2018-07-05 08:26:02 · 358 阅读 · 0 评论 -
django-视图-Request 与 Response
Request 与 Response1. RequestREST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。REST framework 提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单...原创 2018-07-05 08:26:21 · 183 阅读 · 0 评论 -
FastDFS 分布式文件系统
FastDFS 分布式文件系统FastDFS 使用c语言编写一款开源的分布式文件系统FastDFS 架构包括 Tracker server和Storage server 客户端请求Tracker server 进行文件上传 下载,通过Tracker server 调度最终由Storage server完成文件上传和下载Tracker server: 负载均衡和调度 文件上传时根据一些策...原创 2018-06-29 10:36:18 · 397 阅读 · 0 评论 -
django-视图说明
视图概览REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写。视图的继承关系:视图的方法与属性:视图说明1. 两个基类1)APIViewrest_framework.views.APIViewAPIView是REST framework提供的所有视图的基类,继承自Django的View父类。APIView与View的不同之处在于:传入到视图方法中的是REST frame...原创 2018-07-05 08:28:20 · 228 阅读 · 0 评论 -
django-视图集ViewSet
视图集ViewSet使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中:list() 提供一组数据retrieve() 提供单个数据create() 创建数据update() 保存数据destory() 删除数据ViewSet视图集类不再实现get()、post()等方法,而是实现动作 action 如 list() 、create() 等。视图集只在使用as_view()方法的时候...原创 2018-07-05 08:29:30 · 3657 阅读 · 2 评论 -
django-数据库
数据库ORM框架O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。django中内嵌了ORM框架,...原创 2018-07-04 10:58:00 · 442 阅读 · 0 评论 -
django-模板
模板使用1 配置在工程中创建模板目录templates。在settings.py配置文件中修改TEMPLATES配置项的DIRS值:TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'tem...原创 2018-07-04 10:50:12 · 113 阅读 · 0 评论 -
django-中间件
中间件Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。1 中间件的定义方法定义一个中间件工厂函数,然后返回一个可以别调用的中间件。中间件工厂函数需要接收一个可以调用的g...原创 2018-07-04 10:49:58 · 280 阅读 · 0 评论 -
Django环境安装
1. 创建虚拟环境mkvirtualenv django_py3_1.11 -p python3注意需要联网2. 安装Django使用django 1.11.11版本,注意需要联网pip install django==1.11.113. 复习虚拟环境和pip的命令# 虚拟环境mkvirtualenv # 创建虚拟环境rmvirtualenv # 删除虚拟环境workon # 进入...原创 2018-07-03 21:11:02 · 187 阅读 · 0 评论 -
django-创建工程
创建工程1. 创建创建工程的命令为:django-admin startproject 工程名称例如:想要在桌面的code目录中创建一个名为demo的项目工程,可执行如下命令:cd ~/Desktop/codedjango-admin startproject demo执行后,会多出一个新目录名为demo,此即为新创建的工程目录。2. 工程目录说明查看创建的工程目录,结构如下与项目同名的目录...原创 2018-07-03 21:12:19 · 297 阅读 · 0 评论 -
django-创建子应用
创建子应用在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。Django的视图编写是放在子应用中的。1. 创建在django中,创建子应用模块目录仍然可以通过命令来操作,即:python manage.py start...原创 2018-07-03 21:13:41 · 1046 阅读 · 0 评论 -
django-创建视图
创建视图Django的视图是定义在子应用的views.py中的。1. 创建打开刚创建的users模块,在views.py中编写视图代码。from django.http import HttpResponsedef index(request): """ index视图 :param request: 包含了请求信息的请求对象 :return: 响应对象 ...原创 2018-07-03 21:15:15 · 481 阅读 · 0 评论 -
django-配置文件
配置文件1. BASE_DIRBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。2. DEBUG调试模式,创建工程后初始值为True,即默认工作在调试模式下。作用:修改代码文件,程序自动重启Django程序出现异...原创 2018-07-03 21:16:20 · 176 阅读 · 0 评论 -
django-静态文件
静态文件项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理。在html页面中调用时,也需要指定静态文件的路径,Django中提供了一种解析的方式配置静态文件路径。静态文件可以放在项目根目录下,也可以放在应用的目录下,由于有些静态文件在项目中是通用的,所以推荐放在项目的根目录下,方便管理。为了提供静态文件,需要配置两个参数:STATICFILES_DIRS 存放...原创 2018-07-03 21:17:28 · 393 阅读 · 0 评论 -
django-路由说明
路由说明1. 路由定义位置Django的主要路由信息定义在工程同名目录下的urls.py文件中,该文件是Django解析路由的入口。每个子应用为了保持相对独立,可以在各个子应用中定义属于自己的urls.py来保存该应用的路由。然后用主路由文件包含各应用的子路由数据。除了上述方式外,也可将工程的全部路由信息都定义在主路由文件中,子应用不再设置urls.py。如:from django.conf.ur...原创 2018-07-03 21:19:19 · 531 阅读 · 0 评论 -
django-app应用配置
App应用配置在每个应用目录中都包含了apps.py文件,用于保存该应用的相关信息。在创建应用时,Django会向apps.py文件中写入一个该应用的配置类,如from django.apps import AppConfigclass UsersConfig(AppConfig): name = 'users'我们将此类添加到工程settings.py中的INSTALLED_APP...原创 2018-07-03 21:20:55 · 2864 阅读 · 0 评论 -
django-请求
请求回想一下,利用HTTP协议向服务器传参有几种途径?提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取;查询字符串(query string),形如key1=value1&key2=value2;请求体(body)中发送的数据,比如表单数据、json、xml;在http报文的头(header)中。1 URL路径参数在定义路由URL时...原创 2018-07-03 21:25:21 · 380 阅读 · 0 评论 -
django-响应
响应视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。1 HttpResponse可以使用django.http.HttpResponse来构造响应对象。HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)也可通过Http...原创 2018-07-04 10:49:12 · 382 阅读 · 0 评论 -
django-cookie
CookieCookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站...原创 2018-07-04 10:49:22 · 180 阅读 · 0 评论 -
django-session
Session1 启用SessionDjango项目默认启用Session。可以在settings.py文件中查看,如图所示如需禁用session,将上图中的session中间件注释掉即可。2 存储方式在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。2.1 数据库存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。SESSION_ENG...原创 2018-07-04 10:49:31 · 588 阅读 · 0 评论 -
django-类视图
类视图1 类视图引入以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。 def register(request): """处理注册""" # 获取请求方法,判断是GET/POST请求 if request.method == 'GET':...原创 2018-07-04 10:49:42 · 477 阅读 · 0 评论 -
django其他功能
认证Authentication可以在配置文件中配置全局默认的认证方案REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authenticati...原创 2018-07-05 08:34:39 · 269 阅读 · 1 评论