一、 数据库查询强化训练1. 字段条件查询字段查询是指如何指定SQL WHERE子句的内容。 它们用作QuerySet的filter(), exclude()和get()方法的关键字参数。 其基本格式是:field__lookuptype=value,注意其中是 双下划线。 默认查找类型为exact(精确匹配)。 lookuptype的类型有: Django的数据库API支持20多种查询类型,下表列出了所有的字段查询参数: 字段名 说明 exact 精准匹配 iexact 不区分大小写的精准匹配 contains 包含匹配 icontains 不区分大小写的包含匹配 in 在 。。。之内的匹配 gt 大于 gte 大于等于 lt 小于 lte 小于等于 startswith 从开头匹配 istartswith 不区分大小写的从开头匹配 endswith 从结尾处匹配 iendswith 不区分大小写的从结尾处匹配 range 范围匹配 date 日期匹配 year 年份匹配 iso_year 以 ISO ...
一、 资源的增删改查1. 新增资源1234567891011121314151617181920212223# views.py@api_view(['GET', 'POST']) # 允许的请求方法def request_list(request, format=None): # 查询数据 if request.method == 'GET': # 构造序列化器 serializer = RequestSerializer(Request.objects.all(), many=True) # 返回 json 格式数据 # safe=False 是为了支持 {} 以外的 python 对象转 json return Response(serializer.data) # 将 python 原生格式转成 json 数据 # 新增数据 --- POST elif request.method == ...
一、 自定义接口规范(渲染器)1. 渲染器的基本原理 序列化在返回数据后并不是直接做为响应数据,而是经过渲染器的渲染,生成不同格式的响应内容 。 重构渲染器就是重写父类渲染器的render方法 。 1render(self, data, accepted_media_type=None, renderer_context=None) data : 响应数据(序列化器的.data属性),等同于renderer_context[“ response “].data的值 accepted_media_type=None : 可选的。如果提供,这是由内容协商阶段确定的所接受的媒体类型。 根据客户端的 Accept: 头,这可能比渲染器的 media_type 属性更具体,可能包括媒体类型参数。例如 “application/json; nested=true” 。 renderer_context=None : 可选的。如果提供,这是一个由view提供的上下文信息的字典。 默认情况下这个字典会包括以下键: view , request , response , args ...
–、 安装 Vue1. 本地引用安装 — Vue.js (vuejs.org) 1<script src="../lib/vue.js"></script> 2. 外部引用1<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> 二、 模板语法1. 插值语法 功能:用于解析标签体内容。 语法: 123456// xxx是js表达式,{ { xxx; }} 可以直接读取到 data 中的所有属性。 1. 文本12345678910<div id="app">{{ message }}</div><script> var app = new Vue({ el: "#app", data: { message: " ...
一、 组件1. 非单文件组件Vue 使用组件的三大步骤: 创建组件使用 Vue.extend(options) 创建组件注意: el 不好写 data 必须写成函数 123456789101112131415//第一步:创建student组件const student = Vue.extend({ template: ` <div> <h2>学生姓名:{{studentName}}</h2> <h2>学生年龄:{{age}}</h2> </div> `, data() { return { studentName: "张三", age: 18, }; },}); 注册组件 局部注册:靠 new Vue 的时候传入 components 选项 全局注册:靠 Vue.c ...
一、PySide2 、 PyQt5 简介PySide2、PyQt5 都是基于著名的 Qt 库。Qt 库里面有非常强大的图形界面开发库,但是 Qt 库是 C++语言开发的,PySide2、PyQt5 可以让我们通过 Python 语言使用 Qt。PySide2 是 Qt 的 亲儿子 , PyQt5 是 Qt 还没有亲儿子之前的收的 义子 (Riverbank Computing 这个公司开发的)。那为什么 PyQt5 这个义子 反而比 PySide2 这个亲儿子更出名呢?原因很简单:PySide2 这亲儿子最近(2018 年 7 月)才出生。 二、 PySide2 安装1pip install pyside2 网络比较慢,可以指定国内的安装源,下载安装。 1pip install pyside2 -i https://pypi.douban.com/simple/ Qt 官方网站声明了: Windows上 Python 3.8.0 调用 Qt 5.14 , 会有问题。有类似下面这样的导入错误 1ImportError: Dll load failed while importing sh ...
一、多线程的概述1. 进程与线程 进程 :在系统中正在运行的一个 应用程序 ,程序一旦运行就是进程。 进程 —- 资源分配的最小单位。 线程 : 系统分配处理时间资源的基本单元,或者说进程之内独立执行的一个单元试行流。 线程 —- 程序执行的最小单位。 进程 中最少有一个线程。 2.进程的组成 内存 : 每个进程的内存是相互独立的。 文件/网络句柄 : 它们是所有的进程所共有的。 线程 所有的 线程 共享 该进程的所有资源。 3. 进程与线程—-汇总 进程有分配已大部分的内存,而线程只需要分配一部分栈就可以了。 一个程序至少有一个进程,一个进程至少有一个线程。 进程是资源分配的最小单位,线程是程序执行的最小单位。 一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。 4.多线程 使用线程可以把 占据长时间 的程序中的任务放到后台去处理。 用户界面可以更加吸引人。 程序的运行速度可能加快。 在一些 等待的任务 的实现上,线程就比较有用。 5.多线程的执行方式 串行 :依次执行所有的线程,上一个线程没有执行完之前,下一个线程不会执行。 并行 : 所 ...
一、 用户注册注册流程: 1. 注册序列化器123456789101112131415161718192021222324252627282930# serializers.py# 注册序列化器class RegisterSerializer(serializers.ModelSerializer): # admin_code 不在user 模型字段中,需要单独定义 admin_code = serializers.CharField(default='') # 字符串类型 class Meta: model = User fields = ['username', 'password', 'email', 'phone', 'realname', 'admin_code'] # 额外的验证 --- 覆盖父类的方法 def validate(self, attrs): # attrs ...
一、集合 单列集合:其中的元素都是单个的; Collection 接口有两个重要的子接口 List、Set,他们实现子类都是单列集合 双列集合:其中的元素是以键值对的形式出现的; Map 接口实现的子类 是双列集合 1. Collection 接口 Collection 接口实现类的特点: Collection 实现子类可以存放多个元素,每个元素可以是 object; 有些实现类可以存放重复的元素,有些不可以; 有些实现类是有序的(List),有些是无序的(Set); Collection 接口没收直接实现子类,它是通过子接口 List 和 set 来实现的; Collection 接口常用方法 add 添加单个元素 remove 删除指定元素 contains 查找元素是否存在 size 获取元素个数 isEmpty 判断是否为空 clear 清空 addAll 添加多个元素 contains 查找多个元素是否都存在 removeAll 删除多个元素 123456789101112131415161718192021 ...
一、安装1.下载安装包 —— MySQL 下载地址 2.安装 mysql(注意保存临时密码)双击 mysql-5.7.29-macos10.14-x86_64.dmg 文件,进行安装 下截图中有 MySQL 的 临时密码( _Th5u1bh+t(( ) ,必须注意下截图中有 MySQL 的 临时密码( _Th5u1bh+t(( ) ,必须注意下截图中有 MySQL 的 临时密码( _Th5u1bh+t(( ) ,必须注意 3. 启动 MySQL 4. 修改账户密码1234# 启动完成后,打开终端,输入如下内容,然后按回车键alias mysql=/usr/local/mysql/bin/mysqlalias mysqladmin=/usr/local/mysql/bin/mysqladmin 这两条命令是为了方便直接打开 iTerm 就可以运行 mysql 命令,而不是必须进入 mysql 安装目录才能运行。 123# 修改 root 的密码为 12345678mysqladmin -u root -p password 12345678 5.进入终端12345 ...