03-Flask csrf 在 Flask 中开启 csrf 保护让所有的视图受到 CSRF 保护,需要扩展 CsrfProtect 模块 12from flask_wtf.csrf import CsrfProtectCsrfProtect(app) csrf 也支持惰性加载 123456from flask_wtf.csrf import CsrfProtectcsrf = CsrfProtect()def creat 2016-08-04 Python > Flask #Python #Flask
Django + uWSGI + Nginx 生产环境部署 官方文档:https://uwsgi-docs.readthedocs.io/en/latest/Options.html 背景如何在生产上部署 Django? Django的部署可以有很多方式,采用 Nginx+uwsgi 的方式是其中比较常见的一种方式。 概念介绍为什么需要 web 协议开发出的应用程序需要和服务器程序配合,才能为用户提供服务。但是不同的框架有不同的开发方式,需要有一种协议 2016-08-04 Python > Django #Python #Django
Django ORM 合并查询集 在用python或者django写一些小工具应用的时候,有可能会遇到合并多个list到一个 list 的情况。单纯从技术角度来说,处理起来没什么难度,能想到的办法很多,但我觉得有一个很简单而且效率比较高的方法是我以前没注意到的。那就是利用 chain 方法来合并多个list. 同样也可以用来合并django 的 QuerySet. 1. 用 | 合并多个 QuerySet12345678910 2016-08-04 Python > Django #Python #Django
Django ORM 模型动态修改参数,增加 filter 字段 123456789101112131415161718192021222324kwargs = {# 动态查询的字段} # 选择deleted_datetime为空的记录if exclude_deleted:kwargs[ 'deleted_datetime__isnull' ] = True # 选择特的categoryif category is not None:kwar 2016-08-04 Python > Django #Python #Django
Django REST framework +drf_yasg 生成swaggers在线API文档 安装1pip install drf-yasg 第一步:新建一个Django项目1django-admin.py startproject DjangoDrfTest 第二步:新建一个APP1python manage.py startapp news 第三步:修改settings.py12345678910111213141516171819202122232425262728293031 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 介绍 Django REST framework介绍现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势。 显然API开发已经成为后端程序员的必备技能了,那作为Python程序员特别是把Django作为自己主要的开发框架的程序员,Django REST framework(DRF)这个API框应该是要学的。 Django REST framework(DRF)框架文档齐全,社区较稳定,而且 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 序列化 简介使用序列化有四种方式 使用json模块,完全手写 使用django自带的序列化模块1,# from django.core import serializers2,# data=serializers.serialize(“json”,book_list) 使用REST framework 带的序列化方法,但是自己写规则BookSerializers(serializers.Ser 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 序列化-字段含义 官方原文链接本系列文章 github 地址 Serializer 字段 Form 类中的每个字段不仅负责验证数据,还负责 “清洗” 它 — 将其规范化为一致的格式。 序列化字段处理基本数据类型和其他数据类型(比如自定义的类)之间的转换。它们还可以对数据进行验证,以及从其父对象中检索和设置值。 注意: 序列化字段都声明在 fields.py 中,但按照惯例,应该使用 from rest_ 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 视图 上一部分代码在序列化部分 类继承顺序 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960############### mixins.py ################# 类中调用的方法均在 GenericAPIView 类 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 认证和权限组件 认证与权限组件身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制。然后 权限 和 限制 组件决定是否拒绝这个请求。 简单来说就是: 认证确定了你是谁 权限确定你能不能访问某个接口 限制确定你访问某个接口的频率 一、认证组件REST framework 提供的开箱即用的身份验证方案REST framework 提供了一些开箱即用的身份验证方案,并且还允许你实现自定 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django REST framework 频率组件 频率限制组件DRF内置了基本的限制类,首先我们自己动手写一个限制类,熟悉下限制组件的执行过程。 默认配置123REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': [],} 自定义限制类123456789101112131415161718192021222324252627282930313233VISIT_RECORD = & 2016-08-04 Python > Django > DRF #Python #Django #DRF
Django csrf 官网:https://docs.djangoproject.com/zh-hans/3.2/ref/csrf/ 1、CSRF是什么跨站请求伪造(CSRF)与跨站请求脚本正好相反。跨站请求脚本的问题在于,客户端信任服务器端发送的数据。跨站请求伪造的问题在于,服务器信任来自客户端的数据。 2、无 CSRF 时存在的隐患跨站请求伪造是指攻击者通过 HTTP 请求江数据传送到服务器,从而盗取回话的 2016-08-04 Python > Django #Python #Django
Django 之入口源码解析 Django 入口源码解析django的后台进程通常通过下面这种方式运行: 12python manage.py runserver 127.0.0.1:8009 [options]python manage.py app [options] 我们假设当前的项目名为myproject,这里app表示要运行的app名称,具体为django项目中module/management/ 2016-08-04 Python > Django #Python #Django
Django 之数据库连接丢失问题的解决 问题在Django中使用mysql偶尔会出现数据库连接丢失的情况,错误通常有如下两种 OperationalError: (2006, ‘MySQL server has gone away’)OperationalError: (2013, ‘Lost connection to MySQL server during query’) 查询mysql全局变量SHOW GLOBAL VAR 2016-08-04 Python > Django #Python #Django
Django 使用getattr() 方法获取配置文件的变量值 1234from django.conf import settings item = getattr(settings, "变量名", "取不到就给一个默认值") 2016-08-04 Python > Django #Python #Django
Django 入门之 Cookie、Session cookieCookie的由来大家都知道HTTP协议是无状态的。无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数 2016-08-04 Python > Django #Python #Django
Django 入门之 Form 和 ModelForm 组件 Form介绍我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。总结一下,其实form组件的主要功能如下: 生 2016-08-04 Python > Django #Python #Django
Django 入门之 ORM 介绍 字段 字段参数 元信息 ORMORM概念对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM由来让我们从O/R开始。字母O起源于”对象”(Object),而R则 2016-08-04 Python > Django #Python #Django
Django 入门之 ORM 区分大小写 orm 在查询时默认不区分大小写,使用以下关键字时会区分大小写 contains/icontains contains: 进行大小写敏感的判断,某个字符串是否包含在指定的字段中,在被翻译成“SQL”语句的时候,会使用“like binary”, 而“like binary”就是使用大小写敏感进行判断。 icontains: 进行大小写不敏感的判断,某个字符串是否包含在指定的字段中,在被翻 2016-08-04 Python > Django #Python #Django
Django 入门之 ORM 增删改查,F Q 原生sql 添加表记录普通字段1234567891011121314151617# 方式1publish_obj=Publish(name="人民出版社",city="北京",email="renMin@163.com")publish_obj.save() # 将数据保存到数据库# 方式2 # 返回值publish_obj是添加的记录对象publish_obj=Publish.objects.create( 2016-08-04 Python > Django #Python #Django