一个非常实用的小方法 试想一下,Django中如果我们想对保存进数据库的数据做校验,有哪些实现的方法? 我们可以在view中去处理,每当view接收请求,就对提交的数据做校验,校验不通过直接返回错误,不写数据库,校验通过再调用create或update方法写入数据库 以上方式比较简单,容易理解,但随之又带来了麻烦,我们需在所有接收数据的地方都要去校验,那么有没有更加优雅的方式呢?如果你看过我之前的文章『Django使用Signals监测model字段变化发送通知』]就能想到可以通过signals…
采用model的save方法更新数据所需查询 1. 验证时候要确认是update 或者 create,以便使用对应规则 public $validate = array( 'field_name' => array( 'rule_n' => array( 'rule' => 'notEmpty', 'on' => 'create', 'message' => 'message' ) ) ); 2. 自动更新updated, modified, created, 要确认是更新还…
horizon使用的是backbone框架,但是我们的后台api都是只接收post请求,请求的路径为/api/,根据backbone的官档解释: backbone的model.save方法会判断当前的model对象是否存在存在服务器中,如果存在服务器中,则调用"update" (HTTP PUT), 如果不存在,则调用"create" (HTTP POST), 判断的依据即为当前的model的属性'id'是否存在. 举例如下: var UpdateAgentV =…
CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, 如果你发现进坑了, 欢迎参考本篇文章:) 第一次尝试遇到的问题: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 尝试卸载重新安装, 参考, 步骤: 1.查看yum是否安装过mysq…
   最近因为要做一个title压缩的任务,所以调研了一些text summary的方法.    text summary 一般分为抽取式和生成式两种.前者一般是从原始的文本中抽取出重要的word or sentence,然后按照一定的语法或者句法进行组合,从而对原始的文本进行压缩.再文本摘要的早期,基本都是这个思路,代表性的方法是textrank.所谓生成式的方法,就是试图让机器理解原始的文本,从而自己归纳出原始文本的摘要,给出的结果(词语或者句子)可能是原始文本中没有出现过的,这也是其与抽取…
manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用timeshift创建系统快照4 国内源设置4.1 manjaro官方软件仓库4.1.1 自动寻找最快的源4.1.2 选择源4.1.3 更新源4.2 非官方仓库(Arch Linux 中文社区仓库)4.2.1 手动添加archlinuxcn清华源4.2.2 更新源4.2.3 安装archlinuxcn-key…
ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step : 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # Step : 安装GPG证书 curl -…
0.写在前面的话 好久没写博客了,诶,好多时候偷懒直接就抓网上的资料丢笔记里了,也就没有自己提炼,偷懒偷懒.然后最近参加了一个网络课程,要交作业的那种,为了能方便看下其他同学的作业,就写了个爬虫把作业爬下来,进而想到如果以后还有类似这种情况,我需要一个非常轻量化的架子,但是权限依然是必须要用到的,否则写个接口人人都可以调用那还得了,但是我仅仅需要一个人或者一两个人的权限配置就可以了,所以像之前我写过一个基于RBAC的架子甚至都还是有点嫌重(而且那个架子还没有前端页面,哈,真是懒),所以想到了用s…
你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面的那条线路称为线路1,下面的称为线路2. 思路1 先判断线路1的第一个节点的下级节点是否是线路2的第一个节点,如果不是,再判断是不是线路2的第二个,如果也不是,判断是不是第三个节点,一直到最后一个.如果第一轮没找到,再按以上思路处理线路一的第二个节点,第三个,第四个... 找到为止.时间复杂度n2,…
Spring boot +Spring Security + Thymeleaf认证失败返回错误信息踩坑记录 步入8102年,现在企业开发追求快速,Springboot以多种优秀特性引领潮流,在众多使用SpringBoot的企业中,因为SpringSecurity安全框架由于其与spring框架无缝衔接等优秀特性被使用,这里记录一下使用这两个框架以及Thymeleaf模板过程中遇到的一些坑 记录时间:2018.11.30 本人环境: OS:windows 10 JDK:1.8 IDE:Intel…
从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负责的模块connector就派上了用场.在楼主的努力下,线上数据同步代码经历了从最初的将近16个小时(并且还出现其他问题这些问题,等后面慢慢细说),到最终25分钟的性能优化. 打个广告,楼主自己造的轮子,感兴趣的请点https://github.com/haifeiWu/lightconf 代码直接Jenkins打包上线 楼主负责的con…
前言 突然想玩玩python了^_^ 这篇博文记录了我打算发布包到pypi的踩坑经历.python更新太快了,甚至连这种发布上传机制都在不断的更新,这导致网上的一些关于python发布上传到pypi的教程都过时了,按着博文操作会失败,所以请记住,我这篇博文的介绍也许在你看到时也过时了^_^ pypi相关概念介绍 关于pypi本身 pypi是专门用于存放第三方python包的地方,你可以在这里找别人分享的模块,也可以自己分享模块给别人.可以通过easy_install或者pip进行安装.pypi针…
Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEditor.DockArea:OnGUI() Material doesn't have a float or range property 'PixelSnap' UnityEditor.DockArea:OnGUI() 因为editor模式下所有的 platform ab 都是可以用的 并且打 a…
VUE使用微信分享SDK(附踩坑记录) 微信分享官方文档 安装JS-SDK npm i -S weixin-jsapi 引入包 ES5 写法 const wx = require('weixin-jsapi') ES6 写法 import wx from 'weixin-jsapi' 使用 完整版 $.ajax({ url: 'https://*******/auth/jsapisignature', type: 'Get', async: false, dataType: 'jsonp', j…
[技术博客]iview组件样式踩坑记录 iview官方文档. 在本次项目开发中,前端项目主要使用vue框架+iview组件构建,其中iview组件在使用过程中遇到了许多官方文档中没有明确说明或是很难注意到的小坑,这里总结一下分享给大家. 一.iview组件的特殊使用 各个组件的基本用法在官方文档中已经给出,这里总结一些官方文档并没有仔细说明的组件的特殊用法. 1.部分可以动态展开的组件(如下拉菜单)在展开时,被页面中其他元素遮挡问题. 解决方法:使用transfer属性(仅对iview组件有效)…
昨天(2016-2-2日),突然发现系统的一个微信接口使用不了了.后来经查发现,是在网页授权获取用户基本信息的时候,unionid获取失败导致的. 在网页授权获取用户基本信息的介绍中(http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html),unionid可以在第二步(https://api.weixin.qq.com/sns/oauth2/access_token)和第四步的2个接口中获得.其中,第四步的接口是…
ABP框架踩坑记录 ASP.NET Boilerplate是一个专用于现代Web应用程序的通用应用程序框架. 它使用了你已经熟悉的工具,并根据它们实现最佳实践. 文章目录 使用MySQL 配置User Secrets 配置数据库表前缀 添加实体 后续更新中~~ 开始前的准备 此处使用的为ABP Module Zero,ASP.NET Core + Vue.js,版本为4.4. 开发环境: Visual Studio 2017 Community .NET Core 2.2 可以在此下载初始模板:…
IDFA踩坑记录: 1.iOS10.0 以下,即使打开“限制广告跟踪”,依然可以读取idfa: 2.打开“限制广告跟踪”,然后再关闭“限制广告跟踪”,idfa会改变: 3.越狱机器安装开发证书打的包,读取的idfa正常: 4.越狱机器安装本地打的发布证书的包,读取idfa异常,第一次打开app读取的是一个错误的idfa,第二次打开会变成另外一个错误的idfa: 5.越狱机器安装Testflight的包,读取idfa异常,第一次打开app读取的是一个错误的idfa,第二次打开会变成另外一个错误的i…
使用Windows下的git工具往github上传代码 踩坑记录 背景 由于以前接触的项目都是通过svn进行版本控制,现在公司项目使用git,加上自己平时有一个练手小项目,趁着周末试着把项目上传到自己的github上做个管理,也当熟悉下git的操作,虽然是简单的操作,因为一直不太熟,所以还是花费了些功夫,其中的一些注意点做个记录. 第一步 下载git 这里由于是windows下的操作,所以下载的是windows版本的git: 网址是 https://gitforwindows.org 第二部 创…
需求 用户能在手机上上传视频并预览. 问题 上传完成后安卓下封面展示正常,ios下封面空白.如下图所示: 利用canvas截取视频第一帧发现,ios下截取到的第一帧一直是空白图片, 安卓正常. 后端利用javacv库截取,返回给前台封面图,ios竖屏拍摄下的视频截取到的图片有90度旋转,javacv库无法取得旋转信息,但是控制台打印出的视频元信息带有旋转信息.安卓无论横屏竖屏都没有旋转. 解决方案 上述的前两个问题,ios下html开发的文档中指出了video标签只有用户触发了playback才…
SUCTF 2019 Upload labs 2 踩坑记录 题目地址 : https://github.com/team-su/SUCTF-2019/tree/master/Web/Upload Labs 2 最近恶补了一下 SoapClient 反序列化和 MySQL 客户端任意文件读取的知识,这个题目很好的说明了这两个知识点 有一个问题,GitHub 上的代码有点错误,admin.php 中第 63 行 $arg2 = $_POST['arg3']; 要改成 $arg3 = $_POST['…
QT踩坑记录1-多线程信号与槽 QTC++Bugs 错误输出 无错误输出, 但是声明了信号的连接,但是无法使用 程序中就是无命令 介绍 QT 典型程序 #include <QObject> class MyClass:public QObject { Q_OBJECT signals: void signals_dosomething(int n); public slots: void slots_dosomething(int n) { m_value_ = n; } private: i…
QT踩坑记录1-Q_OBJECT编译问题 QTC++Bugs 错误输出 Q_OBJECT 宏错误的地方会编译出现这样的错误, 无法找到.... 由于自己不想再看到这个错误, 此处 复制自 参考连接1, 主要是连接错误 LNK2001 , 1>LoginDlg.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall CLoginDlg::metaObject(void)cons…
今天初次搭建spring boot +duboo的demo.记录一下踩坑记录. 首先搭建3个小demo,一个maven项目,两个spring boot (服务提供者和服务消费者)项目. 两 spring boot 引入jar: <!--引入dubbo的依赖--><dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter&…
Ignite spark 踩坑记录 简述 ignite访问数据有两种模式: Thin Jdbc模式: Jdbc 模式和Ignite client模式: shell客户端输出问题,不能输出全列: 针对上述三个问题,我们一一说明一下 详述 Thin Jdbc 瘦客户端的模式是官网介绍的模式,这种模式类似关系型数据库jdbc的访问模式,有两个参数 ignite.jdbc.distributedJoins 启用分布式join的开关 ignite.jdbc.enforceJoinOrder 在查询中强制表…
很久没有写文章记录了,上一篇文章像流水账一样,把所见所闻一个个记录下来.这次专门聊聊DevOps平台的建设吧,有些新的体会和思考,希望给正在做这个事情的同学们一些启发吧. DevOps落地实践点滴和踩坑记录-(1) 企业落地DevOps该买商用还是自己研发呢? 很多团队刚开始都会问这个问题,我的回答如下 如果团队人数少,技术栈或者技术债务不是很多,历史包袱不重,领导急于看到成果,可以使用devops商业产品.前提还是看商业产品是否满足你们目前场景. 自建工具链,分成简单工具搭建 和 更上一层的二…
FEX是一个用于在ARM64平台运行X86软件的工具,比较成熟,但是网上资料很少,所以就写了这篇FEX运行Wine踩坑记录. Termux的Fex不能用(2022年5月) 要在debian系统安装fex,因为这个系统支持跨架构 debian也不用编译fex,直接用Ubuntu的源,加上[ trusted=yes ]免验证即可 重点来了,不要x64 rootfs!虽然fex官方一直强调要获取或者搭建一个x64的rootfs,但是实际上fex目前(2022.6.7)并不适合这么用,如果用rootfs…
django Model Form django-rest-framework save 方法 修改某个数据的值…
最近有一个需求,通过django的admin后台,可以人工配置5张表的数据,这些数据进行一些业务规则处理后会统一成一份数据缓存在一个cache之中供服务端业务访问,因而任何一张表的数据更新(增.删.改),都要需要重新根据规则计算数据结果,并更新cache. 首先想到的方法就是覆盖每个表model子类中的save方法,在其中先调用父类的save方法走原有保存逻辑更新数据到数据库后,之后再单独调用一次cache的更新逻辑,这样每张表的任意数据被用户更新后,都将先触发model的数据库更新.而后执行c…
参考:https://blog.csdn.net/it_yuan/article/details/53580756 背景: 之前的博客是不支持上传文章缩略图的,后来新增了此功能,但是发现修改老的文章时,新增的图片没有上传到服务器 仅仅是将图片的名字添加到了数据库 原因: 在修改的时候直接update了: ArticlePost.objects.filter(id=article_id).update(title=title, body=body, column_id=column_id, ava…