Django
gy_98
python后端开发
展开
-
Django--序列化器的使用
利用Django的shell来 进行序列化器的演示基本使用 进入 python manage.py shell(django_py3_1.11) python@ubuntu:~/pycharm/Django/demo01$ python manage.py shellPython 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 2016060...原创 2018-07-16 13:26:58 · 1676 阅读 · 0 评论 -
Django--请求详细解析
1, URL路径参数定义路由URL时,使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图的传入参数中。未命名参数按定义顺序传递def weather1(request,city,year): print(city) print(year) return HttpResponse('weather1')url(r'^weather1...原创 2018-07-13 17:11:19 · 859 阅读 · 0 评论 -
Django--响应的详细解析
1 HttpResponse使用django.http.HttpResponse来构造响应对象HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)content:表示返回的内容。status_code:返回的HTTP响应状态码。from django.http import HttpResponsedef demo_view(r...原创 2018-07-13 17:22:30 · 2455 阅读 · 0 评论 -
Django--Cookie
Cookie的特点Cookie以键值对的格式进行信息的存储。Cookie基于域名安全,不同域名的Cookie是不能互相访问的,如访问itcast.cn时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到itcast.cn写的Cookie信息。当浏览器请求某网站时,会将浏览器存储的跟网站相关的所有Cookie信息提交给网站服务器。1 设置Cookie可以通过HttpR...原创 2018-07-13 17:26:59 · 172 阅读 · 0 评论 -
Django--创建视图
1,创建视图 打开创建好的users子应用,在views.py中编写视图代码from django.http import HttpResponsedef index(request): """ index视图 测试视图业务逻辑 :param request: 包含了请求信息的请求对象(HttpRequest类型的对象) :return: 响应对象(Http...原创 2018-07-13 15:48:42 · 257 阅读 · 1 评论 -
Django---类视图详解
类视图的引入以函数的形式进行定义的视图就是函数视图,视图函数便于理解,但是遇到一个视图函数对应的路径提供了多种不同的HTTP请求方式的支持时(get,post,delete,put),需要在一个函数中写不同的业务逻辑,代码的可读性和复用性就很底, 所以,我们引入类视图进行解决. def register(request): """处理注册""" # 获取请求方法,判断是GET/P...原创 2018-07-14 16:42:41 · 12501 阅读 · 1 评论 -
Django--中间件详解
Django的中间件相当于一个轻量级,底层的插件系统,可以接入到Django的请求和响应的处理过程,修改Django的输入和输出.中间件无侵入式的开发方式增强了django 的健壮性.中间件的定义方法在users应用中新建一个middleware.py文件, # 此文件中定义中间件,补充额外的业务逻辑def my_middleware(get_response): print('i...原创 2018-07-14 17:09:29 · 412 阅读 · 0 评论 -
Django--模板
配置模板在settings.py文件中修改:# 模板文件的配置TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', # 指定模板文件查找的路径 'DIRS': [os.path.join(BASE_DIR, 'templates')], ...原创 2018-07-14 17:20:10 · 154 阅读 · 0 评论 -
Django -- 模板语法
模板变量变量名必须由字母、数字、下划线(不能以下划线开头)和点组成。语法如下:{{变量}}模板变量可以使python的内建类型,也可以是对象。def index(request): context = { 'city': '北京', 'adict': { 'name': '西游记', 'author': '吴...原创 2018-07-14 17:22:43 · 789 阅读 · 1 评论 -
Django--数据库的初步配置
配置在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库。DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }}使用MySQ...原创 2018-07-15 12:46:23 · 178 阅读 · 0 评论 -
写用户注册时遇到--请输入短信验证码
写用户注册页面接口时遇到请输入短信验证码此时我已经将页面显示的页面全部写入到页面中,点击注册时出现 请输入短信验证码,而且前端写的定时器也没有显示出来具体bug如下: 接下来我检查查看了错误信息: 服务器端url有问题,于是查看了相关的url,然而并没有错误,此时经过分析,去查看了redis数据库中是否存在相关参数,毕竟前端传过去了, 服...原创 2018-07-20 15:36:39 · 11843 阅读 · 0 评论 -
分页Pagination
全局分页设置:REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 100 # 每页数目} 自定义分页类为视图添加分页行为:class LargeResultsSetPagination(Page...原创 2018-07-20 15:39:09 · 697 阅读 · 0 评论 -
排序orderingFilter
传递的ordering参数的可选字段值需要在ordering_fields中指明class BookInfoViewSet(mixins.ListModelMixin,mixins.RetrieveModelMixin,GenericViewSet): """使用GenericViewSet实现返回列表和单一值""" # 指定序列化器 serializer_clas...原创 2018-07-17 11:12:01 · 1587 阅读 · 0 评论 -
过滤Filtering
增加扩展类:pip insall django-filter在配置文件中增加过滤后端的设置:INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用,]REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.D...原创 2018-07-17 11:07:22 · 157 阅读 · 0 评论 -
限流Throttling
对接口访问的频次进行限制,以减轻服务器压力全局配置:REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.AnonRateThrottle', 'rest_framework.throttling.UserRateThrottle' ), ...原创 2018-07-17 11:04:06 · 514 阅读 · 0 评论 -
Django--反序列化使用
反序列化使用验证利用之前的模型类进行验证,>>> from booktest.models import BookInfo,HeroInfo>>> from booktest.serializers import BookInfoSerializer>>> from booktest.serializers import HeroInfoS...原创 2018-07-16 16:18:34 · 2141 阅读 · 0 评论 -
Django--反序列化器的保存
保存数据验证成功之后把数据传入数据库中进行保存,要基于validated_data完成数据库对象的创建,此时永达create()和update()方法实现定义create()和update()方法 def create(self, validated_data): """ 新建 create validated_data内置参数...原创 2018-07-16 17:47:19 · 1422 阅读 · 0 评论 -
Django--ModelSerializer
定义ModelSerializer# 序列器初体验class BookInfoSerializer(serializers.ModelSerializer): """图书管理序列化器""" class Meta: # model 是指该序列化器的处理的数据字段是从模型类的BookInfo中生成的 model = BookInfo ...原创 2018-07-16 18:54:43 · 2245 阅读 · 0 评论 -
Django--视图之Request和Response
Django REST framwork 提供的视图的主要作用:控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行RequestRequest对象的数据是自动根据前端发送数据的格式进行解析之后的结果。request放的就是请求数据REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framew...原创 2018-07-16 19:17:55 · 580 阅读 · 0 评论 -
Django--视图的两个基类
APIViewfrom rest_framework.views import APIViewfrom rest_framework.response import Responsefrom booktest.models import BookInfofrom booktest.serializers import BookInfoSerializerclass BookIn...原创 2018-07-16 20:10:28 · 675 阅读 · 0 评论 -
Django--五个扩展类
1)ListModelMixin列表视图扩展类,提供list(request, *args, **kwargs)方法快速实现列表视图,返回200状态码。该Mixin的list方法会对数据进行过滤和分页。from rest_framework import mixinsclass BookListView(mixins.ListModelMixin,GenericAPIView):...原创 2018-07-16 20:55:39 · 1850 阅读 · 1 评论 -
Django--视图集ViewSet
ViewSet主要通过继承ViewSetMixin来实现在调用as_view()时传入字典(如{'get':'list'})的映射处理工作。常用的视图集父类GenericViewSet 继承自GenericAPIView与ViewSetMixin,在实现了调用as_view()时传入字典(如{'get':'list'})的映射处理工作的同时,还提供了GenericAPIView提供...原创 2018-07-16 21:51:10 · 5100 阅读 · 0 评论 -
Django--视图
路由Routers使用方法: 在urls.py中定义路由from rest_framework.routers import DefaultRouter# 定义视图集的路由router = DefaultRouter()router.register(r'books',new_views.BookInfoViewSet,base_name='book')# 将试图集的路由添加...原创 2018-07-16 21:58:14 · 671 阅读 · 0 评论 -
Django的数据库
定义模型类 from django.db import models#定义图书模型类BookInfoclass BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名称') bpub_date = models.DateField(verbose_name='发...原创 2018-07-16 22:50:46 · 190 阅读 · 0 评论 -
Django--认证Authentication
全局配置的认证方案:REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authentication.SessionAuthenticati...原创 2018-07-17 09:47:57 · 886 阅读 · 0 评论 -
Django--权限Permissions
权限全局配置:REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', )}权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。在执行视图的dispatch()方法前,会先进行视图访问权限的判断 在通过ge...原创 2018-07-17 10:00:07 · 2849 阅读 · 0 评论 -
鉴权机制对比
SESSION验证:认证方式: HTTP是无状态协议,这意味着如果用户向我们的应用提供了用户名和密码进行用户验证,那么下次请求时用户还要再一次进行用户认证,http无状态,我们并不知道是谁当发送的请求,所以,为了让我们的应用能识别是哪个用户发出的请求,服务器端也应该存一份用户登录信息,登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就...原创 2018-07-20 15:44:53 · 2068 阅读 · 0 评论