[技术博客] Django中文件的保存与访问 在TextMarking项目开发中,数据库需要保存用户上传的文本文档. 原型设计:用户点击上传文本->保存文本->文本发送到后端保存为文件. 我在此记录一种文本保存的方法 1. 在settings中配置media路径 在django项目根目录添加一个文件夹media,并在settings中添加如下路径 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 在url…
背景 我们的工程使用了一个叫做termux的安卓上的linux终端,这个终端在所有的软件包里硬编码了软件的运行路径(/data/data/com.termux/..),由于安卓系统的权限设计,我们名为bingduoduo的应用并没有使用该目录的权限.这个bug在alpha阶段查找,调试折磨了我们很长时间,因为实在没有想到应用的运行会和应用applicationId耦合在一起.我们最终找到的解决方法是自己编译一份termux支持的所有的软件包,将运行路径改为/data/data/bingduodu…
目录 Django框架-后端的搭建 前言 环境的部署 项目的创建 app的使用 创建app 修改配置文件 app中数据表的构建 前端接口 接口的路径 运行服务器 验证后端 Django框架-后端的搭建 前言 我们团队项目做的是一个app,而我负责的后端部分,而在寻找后端框架,如何使用框架我们也花费了大量时间去寻找和解决.所以,我写了一个简易的教程可以简单的在短时间内学会Django框架的基础使用,当然,这只是一个简易的教程,而如果想对django了解更多,可以去django官方网站. 环境的部署…
配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们在使用Django进行小程序后端开发和测试的时候,是直接使用SQLite作为数据库.SQLite是一个基于文件的轻量级数据库,功能简约,小型化,追求最大磁盘效率,但是SQLite数据库同一时间只允许一个写操作,因此吞吐量有限,并不适合多用户并发访问:而MySQL支持高并发的访问,而且相对于SQLit…
Pyqt中View类别容器和Widget类别容器的区别 简介 在beta迭代中,我们选择用pyqt5来重写alpha迭代中使用tkinter库编写的界面. ​ 按钮之类的与tkiner使用无异,在显示"测试报告"和"测试队列"这方面,我打算使用列表类控件,但是在qt designer中发现了两个看起来类似的控件:QListView和QListWidget.这两个控件有什么区别呢? 从文档中我得知,QListWidget是继承自QListView的,其他Widget容…
React-Native中的组件加载.卸载与setState问题. Warning: Can only update a mounted or mounting component. This usually means you called setState, replaceState, or forceUpdate on an unmounted component. This is a no-op. 通常我们会在componentWillMount方法中执行异步数据请求,然后调用setSt…
C++中实现对map按照value值进行排序 - 菜鸟变身记 - 51CTO技术博客 C++中实现对map按照value值进行排序 2012-03-15 15:32:36 标签:map 职场 休闲 排序 map的两个值分别为key值和value值,map是按照key值进行排序的,但有时候需要按照value值进行排序,并且按照value的顺序输出key值,排序代码如下:   typedef pair<string, int> PAIR;   int cmp(const PAIR& x, …
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Django中文件下载的实现 1.背景 在VisualPytorch项目中,当时需要提供一个文件下载的功能.最初想到的方案主要有一下三种 直接把网页前端的字符串写入文件中,在客户端完成. 这个方案经过查找资料发现不同浏览器的同源策略以及安全策略不尽相同,难以实现,放弃. 在服务器上再开一个ftp服务器系统地提供文件服务. 这是最开始的思路,后来根据实际需求…
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. JWT的认证机制Django项目中应用 这篇技术博客基于软件工程课程的VisualPytorch之上.本文小部分参考了https://jwt.io/introduction/ 前言-JWT是什么,为什么用JWT 在做绝大部分数据库系统时(网站.小程序),登录注册肯定是一个绕不开的功能.一般来说传统的解决方案是基于session机制的认证,也就是客户端发送用…
本文旨在通过爬取一系列博客网站技术文章的实践,介绍一下scrapy这个python语言中强大的整站爬虫框架的使用.各位童鞋可不要用来干坏事哦,这些技术博客平台也是为了让我们大家更方便的交流.学习.提高的,大家千万要珍惜哦(-_-). 本文目录: 0.开发环境 1.目标介绍 2.爬取目标 2.1.csdn博客 2.1.1 如何判断是否为Ajax方式异步获取的? 2.1.2 爬虫实现 2.1.2.1 修改spider接口实现 2.1.2.2 修改items.py文件 2.1.2.3 修改pipeli…
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. 基于JsPlumb和JQuery-UI的流程图的保存和再生成 这篇技术博客基于软件工程课程的VisualPytorch之上,代码在一定程度上参考了https://www.cnblogs.com/sggx/p/3836432.html这篇博客. VisualPytorch项目链接如下:VisualPytorch 前言-为什么要保存流程图 对于这样一个类流程图…
上次有人留言说,技术博客是程序员的标配,但据我所知绝大部分技术同学到现在仍然没有自己的技术博客.原因有很多,有的是懒的写,有的是怕写不好,还有的是一直想憋个大招,幻想做到完美再发出来,结果一直胎死腹中.但其实更多程序员是不知道如何去搭建一个博客,其实如今搭建一个个人技术博客非常简单,其中最简单搭建方式莫属使用 GitHub Pages + Jekyll 了,我的博客就是使用这种技术. GitHub Pages Github Pages 是面向用户.组织和项目开放的公共静态页面搭建托管服务,站点可…
[技术博客] nginx 部署 apt 源 出于各种各样的原因, 有时需要自己配置apt源, 比如发布自己编写的debian软件包, 内网中只有一台电脑可以访问外网,或者在本地配置自己的apt源.我们已有自己的包,需要发布, 让终端上的app能够通过url get到. 参考: CreateAuthenticatedRepository (主要基于这一篇) Repositories/Personal AptGet/Offline/Repository 安装部署工具 sudo apt-get ins…
[技术博客]使用CDN加快网站访问速度 2s : most users are willing to wait 10s : the limit for keeping the user's attention focused on the dialogue 15s : tolerant time limit of most users -- Fiona Fui-Hoon Nah, in A study on tolerable waiting time: how long are Web use…
[技术博客] 用Monaco Editor打造接近vscode体验的浏览器IDE 官方文档与重要参考资料 官方demo 官方API调用样例 Playground 官方API Doc,但其搜索框不支持模糊匹配 官方GitHub Issues,可搜索相关问题 CSDN优秀博客 带主题颜色选择的demo 依赖与配置 在浏览器中搭建Monaco Editor,推荐使用ESModule版本+WebPack+npm插件的形式,比较简单.链接中即为官方给出的部署样例. 需要注意的是,经过笔者踩坑,推荐的nod…
全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客 1.背景 我挺喜欢写博客,但每一次将博客转移到公众号或者知乎,总是需要调整格式,不能一步到位.有没有办法可以管理自己的博客,还真有:MarkDown文档.各个平台,一步到位,格式完全相同.完美! 2.简介 Markdown 简称md,是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档.最常见的是gituhub中的说明文档.这是一种非常擅长写作,而不用在意写作格式的工…
技术博客--微信小程序的架构与原理 在两个月的微信小程序开发过程中,我曾走了不少弯路,也曾被很多现在看来十分可笑的问题所困扰.这些弯路与困扰,基本上都是由于当时对小程序的架构理解不够充分,对小程序的原理学习不够深入.我在解决这些问题的过程中,不仅学到了很多有意义的.对开发有直接帮助的知识点,更在微信小程序的架构与原理上补了不少课,对于我在微信小程序的设计上大有裨益.在这篇博客中,我将平常学习到的关于微信小程序的架构与原理的知识记录下来,同时记录我在一些功能上的代码实现,这些功能的实现曾经困扰过我…
[技术博客] 利用SharedPreferences来实现登录状态的记忆功能 一.SharedPreferences简介 SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了string,set,int,long,float,boolean六种数据类型.最终数据是以xml形式进行存储.在应用中通常做一些简单数据的持久化缓存. 二.为什么要使用SharedPreferences? 首先我们要理解一下我们的程序是怎么工作的.我们的博客园…
滴滴面试题:滴滴打车数据库如何拆分 前端时间去滴滴面试,有一道题目是这样的,滴滴每天有100万的订单,如果让你去设计数据库,你会怎么去设计? 当时我的想法是根据用户id的最后一位对某个特殊的值取%操作,然后根据余数定义表的名字为order_0,order_1,orerder_2......等等,但是这样设计有个问题,滴滴的用户是分成司机和乘客的,现在司机和乘客都有app,,他们在自己的app上看自己的订单的时候那怎么查询呢?这样设计数据只有一方可以便捷的取到数据,对于另一方来说取数据会很麻烦,因…
http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651745207&idx=1&sn=3d70d59cede236eb1cb4f7374387a235&scene=0#rd [技术博客]Spark性能优化指南——高级篇 2016-05-13 李雪蕤 美团技术团队 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调…
[置顶] 创建GitHub技术博客全攻略 分类: GitHub2014-07-12 13:10 19710人阅读 评论(21) 收藏 举报 githubio技术博客网站生成 说明: 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字.本文中假设用户名为 tiemaocsdn 1. 注册账号:地址: https://github.com/输入账号.邮箱.密码,然后点击注册按钮. 图1 第1步 2. 初始设置注册完成后,选择Fr…
创建GitHub技术博客全攻略 githubio技术博客网站生成 说明: 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字.本文中假设用户名为 tiemaocsdn 1. 注册账号:地址: https://github.com/输入账号.邮箱.密码,然后点击注册按钮. 图1 第1步 2. 初始设置注册完成后,选择Free免费账号完成设置. 图2 第2步 2.1 验证邮箱请打开你的邮箱,查看发送给你的确认邮件,你需要验证邮箱…
1.安装LAMP环境 1.1 安装Apache2 1.2 安装MySQL5 1.3 安装PHP5 1.4 安装phpMyAdmin 2.初始化数据库 3.下载并配置WordPress 4.配置Apache服务器 5.安装WordPress 6.设置主题(themes) 7.设置固定链接(Permalinks) 8.安装插件 8.1 JetPack插件 8.2 Google Analytics Dashboard插件 8.3 Menu Social Icons插件 8.4 安装WP Super C…
本文转载自:http://blog.csdn.net/renfufei/article/details/37725057/ 说明: 首先,你需要注册一个 github 账号,最好取一个有意义的名字,比如姓名全拼,昵称全拼,如果被占用,可以加上有意义的数字.本文中假设用户名为 tiemaocsdn 1. 注册账号:地址: https://github.com/输入账号.邮箱.密码,然后点击注册按钮. 图1 第1步 2. 初始设置注册完成后,选择Free免费账号完成设置. 图2 第2步 2.1 验证…
目录 目标 代码展示 重点讲解 目标 在上一篇技术博客中,我们生成的海报中包含图片,这些图片是存储到服务器上的,而canvas的drawimage函数只能读取本地文件,因此我们在drawCanvas之前需要把服务器上的图片下载到本地临时存储,这里选择使用wx.downloadfile函数下载. 代码展示 //点击分享按钮之后触发的大函数.主要是使用downloadfile下载所需图像到本地,然后调用drawCanvas函数 //由于异步加载不好控制,所以在这里进行串行下载 头像.原海报,然后dr…
目录 背景介绍 canvas简介 代码实现 难点讲解 圆角矩形裁剪失败之PS的妙用 编码不要过硬 对过长的文字进行截取 真机首次生成时字体不对 drawImage只能使用本地图片 背景介绍 目标:利用canvas画布生成社团活动的海报图片,便于社团活动宣传以及对小程序的推广. 场景:用户A觉得某个社团的活动很不错,因此点击"分享"按钮,生成一个该活动的海报图片,接着,用户A把该图片发到某个群或者朋友圈进行传播,用户B看到该图片后对这个活动蛮感兴趣,通过长按识别图片中的小程序码,能够进入…
在本学期软件工程的Alpha和Beta阶段,我们的服务器部署都是使用基础的http协议,http在网络路由间的信息转发都为明文,这对我们网站的账户密码登录来说很不安全,因此在Gamma阶段我们实现了https协议传输. 1.https证书申请 https简单地说就是http加了一层ssl加密层,加密证书在任何一台计算机上都可以生成,但是由任意第三方生成的证书毫无疑问是不可靠的.因此有了CA这样的证书管理机构,CA在网络通信的过程中可以被认为是完全可信的第三方,使用CA的ssl证书才可以取得客户端…
[技术博客] Android 自动化测试 安卓自动化测试工具与平台的搭建 类似于网页端自动化,安卓测试的自动化也主要是针对控件的自动化.其原理就是通过python(其他语言) 的脚本来代替我们手动完成的任务.所以我们需要的工具就是 python(测试脚本),Appium(安卓自动化测试工具),uiautomatorviewer.bat (定位安卓控件),虚拟机或者真机(运行安卓程序). 我们按照自动化测试的过程来介绍工具的使用与安装. uiautomatorviewer.bat 这是 SDK 自…
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Pytorch代码生成经验文档 关于模型代码的生成,主要思路为从根节点开始进行广度优先搜索,从而自顶向下依次生成相关层的代码.这里和搜索相关的主要有三个数据结构: Q:队列,记录后续继续搜索的节点,即为后续的Node. graph:字典,记录整颗搜索树,每个key对应一个Node,Node为自己封装的一个类,里面包含每层的一些信息.记录搜索树的目的是为了后…
[技术博客] 自制 apt deb Repository (termux) 在修改整合遵循GPLv3的Android terminal app and Linux environment:termux时,遇到修改applicationId导致apt无法获取deb包的问题.不是常规的deb仓库制作. 事情经过及参考见:https://github.com/bingduoduo1/backend/issues/22 以下介绍自制的过程 Part 1. bootstrap.zip 这是termux首次…