0%

遍历

every() :

返回值为boolean类型,每次遍历的结果都为true则返回true,有任何一个返回不为true时,则返回false。

1
2
3
4
5
6
7
8
9
var array = [1, 2, 3, 4, 5];
var flag = array.every(function (element, index, arr) {
// 不写return时返回undefined
if (element < 5) {
return true;
}
})

// flag结果为false,因为当index = 4时不满足,故最后结果为false;
filter() :

返回值为数组,当遍历时的结果为true,则将该结果写入新数组中,最后返回该新数组。

1
2
3
4
5
6
7
8
9
var array = [1, 2, 3, 4, 5];
var newArr = array.filter(function (element, index, arr) {
if (element > 2) {
return true;
}
return false;
})

// 最后newArr = [3, 4, 5]
foreach()

无返回值,纯数组操作。

1
2
3
4
5
6
var array = [1, 2, 3, 4, 5];
array.foreach(function(element, index, arr) {
log.info(element)
})

// foreach方法最大的问题是无法跳出循环,哪怕是return了或者抛异常,它都会看作continue操作,直到执行完所有的遍历操作为止。
阅读全文 »

String.prototype.anchor()

anchor()方法用于创建一个html描元素

1
2
const str = '我是html内容'.anchor('我是name属性值')
console.log(str) // "<a name="我是name属性值">我是html内容</a>"
String.prototype.bold()

bold()方法用于创建html元素

1
2
const str = 'aaa'.bold()
console.log(str) // "<b>aaa</b>"
String.prototype.charAt()

charAt()方法用于返回字符串指定位置的字符

1
2
'amz'.charAt() // 'a'  不传索引则默认为0
'amz'.charAt(1) // 'm'
String.prototype.concat()

concat()将多个字符串拼接在一起

1
2
3
4
const a = 'aaa'
const b = 'bbb'
const c = 'ccc'.concat(a, b, 'ddd')
console.log(c) // 'cccaaabbbddd' hs
String.prototype.endsWith()

endsWith()方法用于判断当前字符串是否以另一个给定字符串结尾

1
2
3
4
5
const name = 'my name is amz' 
name.endsWith('z') // true
name.endsWith('mz') // true
name.endsWith('amz') // true
name.endsWith('is') // falsejs
阅读全文 »

在做django项目时,难免会需要对数据库中的数据进行筛选,django有自己的数据库过滤语法。

1
users = User.objects.filter()

其中有多种参数:

  • __contains :包含, like ‘%aaa%’; __icontains :包含( 忽略大小写) ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于 icontains
  • __exact :精确等于, like ‘aaa’ ;iexact 精确等于(忽略大小写) ilike ‘aaa’
  • __gt 大于
  • __gte 大于等于
  • __lt 小于
  • __lte 小于等于
  • __in 存在于一个list范围内
  • __startswith 以…开头
  • __istartswith 以…开头 忽略大小写
  • __endswith 以…结尾
  • __iendswith 以…结尾,忽略大小写
  • __range 在…范围内
  • __year 日期字段的年份
  • __month 日期字段的月份
  • __day 日期字段的日
  • __isnull=True/False 空查询

“Q() |” 或 ;“&”与(逗号效果一样) ; “~”非(不等于)

1
2
3
from django.db.models imports Q

XXX.objects.filter(Q(id__gt=3)|Q(bread__gt=2))

URL路径:http://localhost:8080/#/test?userid=1

1
<router-link :to="{path:'/test',query: {userid: id}}">跳转</router-link>

接收数据:

1
var id = this.$route.query.userid

二、this.$router.push()

1、使用path+query

URL路径:http://localhost:8080/#/selectCate?userid=1

发送数据:

阅读全文 »

调用

1、导入Paginator

1
from django.core.paginator import Paginator

2、创建分页对象

1
2
3
paginator = Paginator(list, 2)  
# 第一个参数是访问数据库返回得到的一个对象
# 第二个参数表示每一页显示几条信息

3、创建单个页面的对象

1
2
page = paginator.page(page_index)
# 参数为页码
阅读全文 »

一、同步任务与异步任务

首先,我们需要搞清楚同步任务和异步任务的概念以及工作原理。

同步任务

同步任务指的是在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。

异步任务

异步任务指的是刚开始不进入主线程,当主线程的任务执行完了之后再调用异步任务,异步任务任务才会进入主线程执行。(setTimeout, setInterval,promise,process.NextTick)

阅读全文 »

1、导入moviepy的包

1
from moviepy.editor import *

2、读取视频到内存

1
video = VideoFileClip(path)

由此得到了一个VideoFileClip的对象,可通过对此对象的操作,实现对视频的操作。

3、对视频进行剪切

1
videoclip = video.subclip(time1, time2)

time1:起始时长,time2:终止时长 ,单位均为秒。

videoclip是从时长time1到time2的视频的对象。

阅读全文 »

一、安装 fastdfs 依赖包

  1. 解压缩 libfastcommon-master.zip
  2. 进入到 libfastcommon-master 的目录中
  3. 执行 ./make.sh
  4. 执行 sudo ./make.sh install

二、安装 fastdfs

  1. 解压缩 fastdfs-master.zip
  2. 进入到 fastdfs-master 目录中
  3. 执行 ./make.sh
  4. 执行 sudo ./make.sh install

三、配置跟踪服务器tracker

  1. 执行sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
  2. 在 /home/python/ 目录中创建目录 fastdfs/tracker,mkdir –p /data/home/silence/FastDFS/fastdfs/tracker
  3. 编辑 /etc/fdfs/tracker.conf 配置文件 sudo vim /etc/fdfs/tracker.conf,修改 base_path=/data/home/silence/FastDFS/fastdfs/tracker
阅读全文 »

本机Linux中使用redis出现的问题

1、无论是在命令行修改配置文件,还是直接打开配置文件修改,重启之后配置文被重置,尽管打开配置文件发现是自己已经修改过的内容,但是在命令行使用config get 查询之后与自己修改过的内容不一样。

真的很奇怪!!!

2、所以,每次启动redis都需要重新在命令行用config set修改配置文件,以满足自己的需求。

阅读全文 »

我在安装过程中遇到的问题

1、执行指令:sudo apt-get install mysql-server mysql-client后报错:没有发现软件mysql-server 没有发现软件mysql-client

2、上网查询后,说要更换deepin的下载源,所以我先后试了阿里和中科大的镜像源,但还是报一样的错误。

解决方法

确实是要更换镜像源,不过要换成清华的源。

具体方法如下:

1、执行命令:vi /etc/apt/sources.list编辑sources.list文件。

2、将原文件中的所有内容注释掉,然后添加deb [by-hash=force] https://mirrors.tuna.tsinghua.edu.cn/deepin panda main contrib non-free,保存退出。

3、执行sudo apt-get update,更新下载源。

4、执行sudo apt-get install mysql-server mysql-client,安装成功。


2021.10.17 更新

由于 deepin 系统仓库的原因,不能直接 apt 安装 mysql,清华源以及其他源都没有 mysql-server 和 mysql-client 两个包。不过我们可以用 mariadb 来代替 mysql。

MariaDB 介绍

MariaDB数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。开发这个分支的原因之一是: 甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。

这意味着,所有使用 MySQL 的连接器、程序库和应用程序也将可以在 MariaDB 下工作。

所以,MariaDB 完全可以替代 MySQL。


deepin 安装 MariaDB

打开终端执行以下指令:

1
2
3
sudo apt-get install mariadb-server

sudo apt-get install libmariadbclient-dev libssl-dev

安装完成。

启动数据库:

1
sudo systemctl start mysql

现在就可以开启 MariaDB 数据库了。第一次进入不需要密码,直接执行:

1
mysql

进入后可以设置密码:

1
2
3
4
MariaDB [(none)]> use mysql;
MariaDB [mysql]> UPDATE mysql.user SET password=PASSWORD('newpassward') WHERE user='root';
MariaDB [mysql]> UPDATE user SET plugin="mysql_native_password";
MariaDB [mysql]> FLUSH PRIVILEGES;

退出再登陆就需要执行:

1
mysql -u root -p