![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python_django
five-four-one
这个作者很懒,什么都没留下…
展开
-
django-自定义的中间件
自定义中间件中间件所处的位置没有规定, 只要是放到项目中即可一般分位两种情况1.如果是中间件属于某个app, 那么可以在这app下面创建一个python文件用来存放中间件2.如果是用来存放本项目中所有中间件, 可以在项目下创建一个目录专门处理中间件创建中间件的方式有两种: 函数和类在app下创建中间件app下创建中间件,专门用来处理这个app相关的中间操作步骤:在app下创建一...原创 2019-12-24 09:40:10 · 180 阅读 · 0 评论 -
django-内置的中间件
中间件中间件事在request和response处理过程中的一个插件。比如在request到达试图函数之前,可以使用中间件来做一些相关的事情。比如可以在判断用户有没有登录,如果登陆了,就绑定一个user对象到request上,也可以在response到达浏览器之前,做一些相关的处理,可以在resopnse设置一些cookie信息等。django内置中间件放置顺序在settings.py中有内...原创 2019-12-24 09:10:12 · 128 阅读 · 0 评论 -
django-上下文处理器
自定义上下文处理器如果想要返回自己的数据, 可以自定义上下文处理器自定义上下文处理器步骤:1.根据上下文处理器属于哪个app, 在这app中创建一个py文件专门存储上下文处理器2.在定义的上下文处理器文件中定义一个函数, 这个函数只有一个request参数, 这个函数处理完成自己的逻辑后, 把需要的数据通过字典的形式返回, 如果不返回任何数据那么必须返回一个空的字典app下创建一个py...原创 2019-12-24 06:04:17 · 143 阅读 · 0 评论 -
django-session
sessionsession和cookie的作用有点类似,都是为了存储用户相关的信息,不同的是cookie存储在本地浏览器,session是一个思路,一个概念,一个服务器存储授权信息的解决方案,不同服务器,不同的框架,不同的语言有不同的实现方式,虽然实现方式不一样,但是目的都是为了服务器为了方便存储数据,session的出现是为了解决cookie存储数据不安全的问题cookie和session...原创 2019-12-19 06:20:37 · 78 阅读 · 0 评论 -
django-cookie
cookie: 在网站中, http请求是无状态的,即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不知道当前请求的用户。cookie的出现就是为了解决这个问题。第一次登陆后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求时,就会自动把上次请求存储cookie数据自动的携带到服务器,服务器通过浏览器携带的数据就能判断当前的用户是哪个。cook...原创 2019-12-19 05:52:55 · 77 阅读 · 0 评论 -
django-文件上传
基本的文件上传流程1.前端的代码前端代码说明:<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"> <input type="submit" value="提交"></form># 1...原创 2019-12-18 11:46:42 · 253 阅读 · 0 评论 -
django-ModelForm模型表单的使用
ModelForm: 模型表单类表单类forms和模型类models的字段基本上是一样的, django内置了ModelForm模型表单类,将两者绑定一起结合使用ModelForm: 模型表单类的使用1.定义模型类2.定义表单类, 导入定义好的模型类3.定义视图直接使用使用说明关于forms表单类的使用forms表单类继承: forms.ModelForm内置的Met...原创 2019-12-18 09:40:27 · 722 阅读 · 0 评论 -
django-简化表单错误信息的提取
提取错误信息如果验证失败了, 那么有一些错误信息我们需要传递给前端通过属性获取错误信息form.errors: 这个属性获取的错误信息是一个包含了html标签的错误信息通过方法获取错误信息form.errors.get_json_data(): 这个方法获取到的是一个字典类型的错误信息 将某个字段的名字作为key 错误信息作为值得一个字典form.as_json(): 这个...原创 2019-12-16 23:22:53 · 496 阅读 · 0 评论 -
django-表单常用验证器和注册验证例子
django-表单常用验证器在验证某一个字段时, 可以传递一个validators参数来指定验证器, 来对数据进行过滤导入方式from django.core import validators常用的验证器MaxValueValidators : 验证最大值MinValueValidators : 验证最小值MinLengthValidators : 验证最小长度MaxL...原创 2019-12-16 23:00:03 · 362 阅读 · 0 评论 -
django表单的使用
django表单的主要用途渲染表单模板表单验证数据是否合法django表单的导入from django import formsdjango表单类常用字段(Field)类型使用Field可以对数据验证保证其正确性froms.CharField() 文本类型CharField() : 用来接收文本参数详解: CharField()max_length:存储最大长度m...原创 2019-12-16 11:33:55 · 137 阅读 · 0 评论 -
网站的错误处理
常见的错误码403: 没有权限访问相关的数据404: 服务器没有指定的url405: 请求的method错误400: 请求的参数错误500: 服务器内部错误, 一般是代码出bug了502: 一般部署时见得比较多, Nginx启动了,然后uwsgi有问题上线时debug要设置为False404 , 500错误在模板文件直接写入就会触发,模板的名称一定要是404.html,500...原创 2019-12-16 05:39:19 · 80 阅读 · 0 评论 -
django-类视图添加装饰器
类试图添加装饰的两种方式模板的导入from django.utils.decorators import method_decorator装饰方法的使用# 装饰一个装饰器@method_decorator(装饰器函数名)# 装饰多个装饰器,装饰在类视图上@method_decorator([装饰器函数名1, 装饰器函数名2], name='方法名')装饰dispatch方法...原创 2019-12-16 05:18:09 · 144 阅读 · 0 评论 -
django-分页Paginator类和Page类(未完出现bug-后续跟进)
Paginator类和Page类: 都是用来做分页的Paginator类的导入: from django.core.paginator import PaginatorPage类的导入:from django.core.paginator import PagePaginator类的常用属性count: 总共有多少条数据num_pages: 总共有多少页,最大页码page_range...原创 2019-12-11 20:37:28 · 254 阅读 · 0 评论 -
django- ListView类视图
在网站开发中, 经常会出现需要列出某个表中的一些数据展示出来, 比如文章列表, 图书列表等等, 在django中可以使用ListView来帮我们呢快速实现这种需求ListView类视图的使用方法属性的使用model = 模型类 >> 指定是哪个模型类template_name = 模板路径 >>指定是哪个模板context_object_name = '模板数据...原创 2019-12-10 22:08:09 · 349 阅读 · 0 评论 -
django-templateView类视图
template类视图django.views,generic.base.TemplateView这个类视图是专门用来返回模板的TemplateView常用属性方法template_name: 存储模板的路径get_context_data: 返回上下文数据, 也就是给模板传的参数TemplateView的使用渲染的模板不需要传递任何参数时格式:在urls.py中导入模板类...原创 2019-12-10 20:50:37 · 898 阅读 · 0 评论 -
django-类视图
类视图django除了使用函数作为视图之外, 还可以使用类作为视图,使用类视图可以使用类的一些特性, 比如继承,多态等导入方式from django.views.generic import View说明:django.views.generic.base.View是主要的类视图, 所有的类视图都继承自他, 我们自己写的类视图,也可以继承自他, 然后再根据请求method,来实现不...原创 2019-12-10 20:30:31 · 71 阅读 · 0 评论 -
django-生成和下载CSV文件
生成csv文件生成有一个csv文件给浏览器,并且作为附件的形式下载下来import csvdef index4(request): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = "attachment;filename=abc.csv" writer...原创 2019-12-10 17:58:37 · 324 阅读 · 0 评论 -
django-JsonResponse类
JsonResponse类导入方式from django.http import JsonResponse用来dump成json字符串, 返回给浏览器, 并且他的content-Type是application/json直接使用json数据类型原创 2019-12-10 15:32:53 · 408 阅读 · 0 评论 -
HttpResonpse对象
django服务器接收到客户端发送过来的请求后, 会将提交上来的这些数据封装成一个 HttpRequest对象传给视图函数, 那么视图函数在处理完相关的逻辑后, 也需要返回一个响应给浏览器, 而这个响应, 我们必须返回HttpResponse或者他的子类对象, 而HttpResponseHttpResponseBase用得最多的子类.HttpResponse对象继承: HttpRespons...原创 2019-12-10 15:06:43 · 237 阅读 · 0 评论 -
django-QueryDict用法
Querydict对象request.GET,和request.POST都是QueryDict常用方法, QueryDict集成dict, 用法相差无几, 其中用的较多的方法就是 'get'和'getlist方法'get方法: 用来获取指定key的值, 如果没有这个key, 就会返回nonegetlist方法: 如果浏览器上传来的key对应的值有多个,那么就需要通过这个方法来获取get方...原创 2019-12-10 14:14:31 · 357 阅读 · 0 评论 -
django-WSGIRequest对象(视图函数request参数详解)
WSGIRequest对象django接收到http请求之后, 会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象, 并且作为视图函数的第一个参数传递给视图函数, 也就是reques参数通过该对象我们可以找到客户端上传的所有信息该对象完成路径django.core.handlers.wsgi.WGSIRequest导入方式:from django.core.h...原创 2019-12-09 21:35:17 · 1714 阅读 · 0 评论 -
django-重定向
重定向: 分为永久重定向和暂时性重定向在页面上体现的操作,就是浏览器会从一个页面自动跳转到另外一个页面比如: 用户访问了一个需要权限的页面,但是该用户并没有登录, 因此我们应该给该页面重定向到登录页面永久性重定向: http状态码是301, 多用于旧网址被废弃了要跳转到一个新的网址暂时性重定向: http状态码是302, 表示页面的暂时性跳转 比如访问一个需要权限的页面, 当用户没有登录...原创 2019-12-09 19:13:30 · 171 阅读 · 0 评论 -
django-限制请求method
限制请求装饰器django内置的视图装饰器可以给视图提供一些限制,比如这个视图只能通过GET的方式进行访问等django内置装饰器的导入:from django.views.decorators.http import require_http_methods限制只能通过GET方法方式1:from django.views.decorators.http import require...原创 2019-12-06 14:12:08 · 310 阅读 · 0 评论 -
django-新建项目-配置文件小结
1 .配置模板存放路径2.配置静态文件# 设置静态文件存放的物理目录STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]配置mysql数据库1,DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 改成mysql...原创 2019-12-05 15:06:34 · 108 阅读 · 0 评论 -
django-QuerySet的切片操作
切片操作切片操作:只需要一部分数据,可以使用切片,跟python切片一致原创 2019-12-03 16:22:06 · 610 阅读 · 0 评论 -
django-ORM查询数据后处理方法
目录get_or_createcountfirst, lastexistsdistinctupdatedeleteget_or_create根据某个条件进行查找,如果找到了返回这条数据,如果没有找到,就创建一个格式:模型类.objects.get_or_create(字段=值)但是创建字段要根据模型字段类型,如果不为空的话也要加上去get_or_create返回值是元...原创 2019-12-03 16:18:06 · 788 阅读 · 1 评论 -
django-ORM的QuerySet对象的操作
QuerySet对象目录filterexcludeorder_byvaluesvalues_listselect_relatedprefetchdeferqueryset是查询集 Django会对查询返回的结果集QerySet进行缓存,是为了提高查询效率。QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只要你查询的时候才真正的操...原创 2019-12-03 15:51:17 · 2548 阅读 · 0 评论 -
django-ORM的F表达式,Q表达式
F表达式F表达式:动态获取某个字段上的值, 并且这个F表达式,不会真正的去数据库中查询他相当于只是起一个标识的作用导入:from django.db.models import F,Q...原创 2019-12-02 18:27:21 · 379 阅读 · 0 评论 -
django-外键和表关系--添加数据小结
一对多,多方表表添加数据方式一:使用的是create()方法示例:one_link = score.Teacher.objects.get(pk=1)mary_link = score.Course.objects.create(name="地理", teacher_id=one_link.id)语法:得到一方表的行对象一方表行对象= 模型类.objects.get(pk=值)...原创 2019-12-02 17:41:15 · 3486 阅读 · 0 评论 -
django-ORM模型--添加数据
实例化添加实例化添加数据: 必须调用save()方法提交数据方式一: 变量 = 模型类() 变量.字段1 = 值 变量.字段2 = 值 变量.字段n = 值 变量.save()方式二: 变量 = 模型类(字段1=值,字段2=值,字段n=值) 变量.save()create方法用法: 模型类.objects.create(字段=值,字段2=值)示例: score....原创 2019-12-02 12:52:30 · 1826 阅读 · 0 评论 -
django-ORM聚合函数的使用
目录聚合函数aggregate的使用annotate和聚合函数的配合使用导入django内置聚合函数的模块from django.db.models import Count, Avg, Sum, Min, Maxaggregate和annotate的区别相同点: 这两个方法都是可以执行聚合函数的不同点:1.aggregate: 返回的一个字典,这个字典中存储的是这个聚合函...原创 2019-11-29 09:40:09 · 283 阅读 · 0 评论 -
django-ORM查询条件的详情
filter结合查询条件的使用1.exact 精确查询 =2.iexact 精确查询 like3.contains4.icontains5.in 比较6. gt7. gte8. lt9. lte判断字符的开始结束10 startswith11.istartswith12.endswith13.iendswith查看原生的sql语句只能在querySet对...原创 2019-11-28 14:38:37 · 494 阅读 · 0 评论 -
django-外键-表关系之多对多
多对多应用场景: 文章和标签的关系,一篇文章可以有多个标签,一个标签可以被多个文章使用,因此关系为多对多关系创建多对多:models.ManyToManyField("关联的模型类名")会自动生成一张关联表,关联表会成为两张表之间的联系创建模型类多对多class Article(models.Model): title = models.CharField(max_lengt...原创 2019-11-27 20:28:53 · 233 阅读 · 0 评论 -
django-外键-表关系之一对一
一对一django中一对一通过models.OneToOneField来实现的, 这个"models.OneToOneField"本质上就是一个外键,只不过这个外键有一个唯一的约束(unique key)示例创建两张表, 分别是username和user_cardclass Username(models.Model): name = models.CharField(m...原创 2019-11-27 19:58:21 · 336 阅读 · 0 评论 -
django-外键-表关系之一对多
应用场景:比如:文章与作者之间的联系一篇文章由一个作者编写,但是一个作者可以写多篇文章作者和文章就是典型的一对多关系一对多表关系的定义一对多:一张表对多张表外键关联设置在多方表class User(models.Model): """小说作者""" name = models.CharField(max_length=15)class Novel(model...原创 2019-11-27 18:49:41 · 412 阅读 · 0 评论 -
django-外键和表的关系
定义外键关联别的模型models.ForeignKen("关联的模型名", models.on_delete=删除处理方式, **options)关联自身表:models.ForeignKen(self或者自身表名, models.on_delete=删除处理方式)关联的表名称: 引用的那个模型models.on_delete=删除处理方式: 使用外键引用的模型被删除了,这个字段...原创 2019-11-27 16:25:37 · 287 阅读 · 0 评论 -
django-ORM模型中meta配置
meta配置db_tabledb_table: 指定数据表名称,如果没有指定,使用模型名为默认表名orderingordering:设置在提取数据的排序方式逆序: 负值 -id -pk原创 2019-11-21 16:40:29 · 363 阅读 · 0 评论 -
django-ORM--Field常用参数
null默认为null=False 尽量不做修改如果设置 null=True 映射表的字段会产生两种情形(Null或者空字符串)如果想要在表单验证时允许为空时,建议使用 blank=True如果Field是BooleanField,那么对应的可空字段则为NullBooleanFieldblankblank: 标识这个字段在表单验证时,是否为空,默认为False这个和null的区别:...原创 2019-11-21 16:33:14 · 94 阅读 · 0 评论 -
django-ORM常用字段Field
整数和浮点型AutoFieldint类型,可以自动增长一般不需要使用这个类型如果不指定主键,那么模型会自动的生成一个叫id的自动增长的主键id = models.AutoField(primary_key=True)primary_key=True: 设置为主键BigAutoField64位的int类型,类似于AutoField,但是产生的数据的范围是从1-923337203...原创 2019-11-21 16:22:11 · 284 阅读 · 1 评论 -
django-模板语言-静态文件的详细介绍
加载静态文件在网页中,不仅仅只有一个html骨架,还需要css样式,js等在DTL中使用 static标签来加载静态文件 {% load static %}加载步骤一.1.确保 'django.contrib.staticfiles',添加到setting.INSTALLED_APPS中二.2.确保setting.py中设置了STATIC_URL, 这个'/static/'...原创 2019-11-20 18:57:16 · 152 阅读 · 0 评论