
Django框架
BigMasterSun
贵有恒,何必三更眠五更起!最无益,只怕一日曝十日寒~
展开
-
Django简介
一、什么是web应用?web应用本质上就是一个socket服务端,用户的浏览器就是socket的客户端。这样一来,我们就能实现自己的简易版web框架了。话不多说,上代码。import socketserver = socket.socket()server.bind(('127.0.0.1', 8080)) # 绑定IP+PORTserver.listen(5) # 同时允...原创 2019-06-05 19:49:48 · 508 阅读 · 0 评论 -
网关协议,表和字段的自定义命名,301与302状态码区别,jwt,全局唯一id生成(雪花算法)、函数与方法的区别
一、网关协议CGI:通用网关接口(Common Gateway Interface/CGI),可以让浏览器向服务器上的程序请求数据。CGI 是一种服务器和后端可执行程序之间的交互标准优点CGI 的优点也就是它的作用了。CGI 程序提供了很多静态网页无法实现的功能,比如加载数据、数据运算等等。早期的动态网页基本都是基于 CGI 实现的。缺点在 CGI 协议下,解析器的...原创 2019-07-02 14:41:56 · 706 阅读 · 0 评论 -
rest-framework之视图组件+自定义response
一、普通的视图组件写一个图书的增删改查的restful接口因为涉及到查询一条数据和多条数据,所以需要两条路由和两个cbv。然后用postman向两条路由发送相关的请求就行了:http://127.0.0.1:8000/book_detail/3/ http://127.0.0.1:8000/books/数据表:models.pyfrom django.db impo...原创 2019-07-02 23:07:20 · 973 阅读 · 0 评论 -
Django的缓存
在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面。为了减轻压力,基本上网站都会做一些措施,比如图片防盗链,它是通过请求头的refer来确定客户端是从哪里来访问的,从而对一些非法访问的客户端进行封禁。当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力...原创 2019-07-08 16:52:35 · 402 阅读 · 0 评论 -
Django开发遇到的跨域问题(CORS跨域资源共享)
一、同源策略:同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。当发起的请求的域与该请求指向的资源所在的域的ip+端口及协议一致时,认为是...原创 2019-07-08 19:47:12 · 523 阅读 · 1 评论 -
Django之头像实时展示到input框、图片验证码、简单发邮件
一、以注册功能来看头像实时展示首先先来写一个简单的页面:<div class="container-fluid"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <h2 class="text-center">用户注册<...原创 2019-06-24 20:37:07 · 758 阅读 · 0 评论 -
rest-framework之认证组件(token、uuid)、权限组件、频率组件
drf框架自带一些组件,完成认证、权限、频率控制等功能。rest_framework.views的APIView实际上里面的as_view()调用了原生django的,但是它有自己的dispatch方法,在dispatch方法中的self.initial(request, *args, **kwargs)里面定义了三个组件。一、认证组件认证组件主要用来对用户的登录状态做...原创 2019-07-03 20:10:21 · 731 阅读 · 0 评论 -
rest-framework自动生成API接口文档
一. 自动生成接口文档REST framework可以自动帮助我们生成接口文档。接口文档以网页的方式呈现。自动接口文档能生成的是继承自APIView及其子类的视图。1.1. 安装依赖REST framewrok生成接口文档需要coreapi库的支持。pip install -i https://pypi.douban.com/simple/ coreapipip install co...原创 2019-07-13 16:49:05 · 479 阅读 · 0 评论 -
rest-framework之url控制、解析器、版本控制、响应器、分页器
一、url控制1.1、自定义(原始)路由一般写法如下FBV:url(r'^site/', views.site),url(r'^site/(?P<name>\w+)/', views.site)CBV:from django.conf.urls import urlfrom app01 import viewsurlpatterns = [ ...原创 2019-07-05 20:02:28 · 340 阅读 · 0 评论 -
权限和jwt(json.web.token)
一、权限权限概念:在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员,那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么就需要了解权限机制了。在开发中, 一般现在流行的权限机制有2种: RBAC[基于角色(分组)的权限认证]和Auth认证[授权认证机制]我们使用的django框架内部集成的Auth模块实际上就是基于RBAC开发出来的权限认证机制...原创 2019-07-20 13:25:47 · 415 阅读 · 0 评论 -
uwsgi启动的xadmin样式不生效的解决方法
django用uwsgi启动后,xadmin的配置文件会失效。这是因为STATICFILES_DIRS=[]配置的静态文件只能在django自己启动时才生效。解决方法如下:# 1、在static同级目录下新建一个任意目录,这里我叫filesmkdir files# 2、在配置文件中配置一个STATIC_ROOT,就是刚刚新建的目录路径,这个就是url请求的地址:STATIC_ROOT ...原创 2019-08-13 20:12:18 · 645 阅读 · 0 评论 -
rest-framework之序列化组件
drf框架用于前后端分离开发,分离开发的数据交互是通过json格式的数据来完成的。我们之前通过将字典序列化返回出去,其实drf框架本身就自带了序列化的组件。一、django自带序列化组件django也有自带的序列化组件,但是它默认是携带很多不需要的数据,不能控制其携带的数据,因此只做了解即可。from django.core import serializersdef t...原创 2019-07-02 21:14:19 · 747 阅读 · 0 评论 -
Django之cbv分析、restful、drf框架部分源码分析
一、django的请求生命周期具体步骤如下:用户通过浏览器访问服务器 首先进入实现了WSGI协议的web服务器 进入django的中间件 开始路由匹配 执行相应的视图函数 取模板,取数据,用数据渲染模板 返回模板的字符串 数据展示到用户浏览器二、开发模式1、前后端不分离项目前端页面看到的效果都是由后端渲染页面或重定向 前端与后端的耦合度很高2、...原创 2019-07-01 20:03:39 · 396 阅读 · 0 评论 -
Django之单表查询,多表的正向与反向查询,聚合查询
在开始查询之前,先做一点准备工作,在Django的配置文件中,配置mysql数据库。然后在项目或app下面的__init__.py文件中指明要用pymysql连接数据库一、 常用字段和参数1.1、常用字段AutoField:int自增列,必须填入参数 primary_key=True。当models中如果没有自增列,则会自动创建一个列名为id的列。Intege...原创 2019-06-12 22:39:09 · 1633 阅读 · 0 评论 -
Django之ORM完成对数据的增删改查
Django捡破烂随便侃首先需要明确的一点是,我们在Django项目中需要引入css,js,前端第三方类库,从cdn引入当然很方便,但是在我们写的时候不会自动提示,这就不那么美妙了,那么应该怎么做呢?需要在Django项目目录下面创建一个static文件夹。把所有的静态文件css,js,前端第三方类库等都放在static文件夹下。然后需要在配置文件中对static文件夹进行配置。S...原创 2019-06-06 23:21:51 · 1325 阅读 · 0 评论 -
Django之自定义字段,choices字段参数,F查询与Q查询,事务,查询时的defer和only
一、自定义char字段Django中没有char类型,但是可以自定义实现。class MyCharField(models.Field): def __init__(self, max_length, *args, **kwargs): self.max_length = max_length super().__init__(max_leng...原创 2019-06-13 16:27:12 · 1347 阅读 · 0 评论 -
Django中间件
之前说了可以通过加装饰器来完成用户的登录验证,如果没有登录就跳转到登录页面。登陆完后再跳转回用户想访问的页面。但是以后还有很多的视图函数需要加装饰器,特别麻烦。正好,Django的中间件给我们提供了一种全局的控制效果。什么是中间件?中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组...原创 2019-06-18 21:01:23 · 232 阅读 · 0 评论 -
Django之Auth认证组件
一、Auth是什么?Auth模块是django自带的用户认证模块。它内置了强大的用户认证系统——auth(from django.contrib import auth)它默认使用auth_user表来存储用户数据二、走近Auth(常用方法)authenticate()提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username 、password两个...原创 2019-06-18 23:05:59 · 757 阅读 · 0 评论 -
Django之MTV与MVC、多对多表的创建方式、ajax、批量插入数据、自定义分页器
一、MTV与MVC模型:MTV模型:(django)M:模型层(models.py) T:templates V:viewsMVC模型:M:模型层(models.py) V:视图层(views.py) C:控制层(Controller) urls.pydjango的MTV本质上也是MVC模型。二、多对多表的三种创建方式第一种:django自动帮我们创建...原创 2019-06-14 21:20:05 · 283 阅读 · 0 评论 -
Django之路由层,视图层,伪静态网页
一、路由层Django 1.11版本 URLConf官方文档urls.py文件就是路由层,它是url与url要调用的视图函数之间的映射表。基本格式如下:from django.conf.urls import urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = [ url...原创 2019-06-10 22:24:54 · 621 阅读 · 0 评论 -
Django之模板层
一、后端朝前端发送数据的方式第一种:return render(request,'index.html',{'n':n})第二种:return render(request,'index.html',locals())第二种方式会将当前名称空间的所有名字全部传递到前端,即模板层。注:后端传函数名到前端,会自动加括号调用,但是不支持传参; 后端传对象到前端,...原创 2019-06-11 20:14:35 · 346 阅读 · 0 评论 -
Django之form组件
form组件的三大主要功能:渲染标签 校验数据 展示信息(保留上次的输入)先来试试自己写一个注册功能,然后做一下校验:def reg(request): errors = {'username': '', 'password': ''} if request.method == 'POST': username = request.POST.g...原创 2019-06-17 19:52:05 · 297 阅读 · 0 评论 -
Django之Cookie与Session组件
一、cookiehttp协议是无状态的,意思就是每次请求都是独立的,不会记录,每次访问都会把你当作第一次来。但是我们想要服务器能够保存这个状态,这就诞生了cookie。什么是cookie?Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。cookie的原理:由服务器...原创 2019-06-17 21:29:24 · 235 阅读 · 0 评论 -
关于django的ORM补充
# 数据库外键字段设置的参数# on_delete参数在2.0以后的django版本中都必须写,以前版本默认是CASCADEon_delete=models.SET_NULL,db_constraint=False # 若关联字段删除,则该字段置为nullon_delete=models.DO_NOTHING # 关联字段删除,自己不做任何事on_delete=models.CA...原创 2019-08-15 20:24:16 · 215 阅读 · 0 评论