Django快速开发实践:Drf框架和xadmin配置指北
步骤 既然是快速开发,那废话不多说,直接说步骤: 安装Djagno 安装Django Rest Framework 定义models 定义Rest framework的serializers 定义Rest framework的viewsets 配置Rest framework的router 配置管理后台admin 根据需要写template和对应的view 经过这些步骤就能得到一个具备完整的后端接
Django应用部署:uwsgi+Nginx方式
环境准备 nginx+uwsgi方式部署顾名思义,需要nginx和uwsgi两个软件包。 nginx不用说,是必备的,关于nginx的安装本文不再赘述,详情可以自行搜索或者参考我以前的文章: Debian8搭建LEMP环境 安装uwsgi pip install uwsgi 上传项目代码 & 测试 # 进入项目目录,具体目录请自行选择 cd /path/to/project # 建立虚拟环境 v
Django应用中的静态文件处理
在日常开发中,我们都是把Django的Debug模式打开,方便调试,在这个模式下,由Django内置的Web服务器提供静态文件服务,不过需要进行一些配置,才能正确访问。 配置settings # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ ST
Django全文检索实现:HayStack-+-Whoosh-+-Jieba
涉及到的工具 haystack是django的开源搜索框架,该框架支持**Solr**, Elasticsearch, Whoosh, **Xapian搜索引擎,不用更改代码,直接切换引擎,减少代码量。 搜索引擎使用Whoosh,这是一个由纯Python实现的全文搜索引擎,没有二进制文件等,比较小巧,配置比较简单,当然性能自然略低。 中文分词Jieba,由于Whoosh自带的是英文分词,对中文的分
Django中间件之实现Admin后台IP白名单
前言 Django自带的Admin管理后台很方便,但是实际生产环境真的会有挺多安全问题的,在admin的安全防护这方面,我之前就研究实现了给admin加上登录验证码和限流功能,可以参考这篇文章:给Django Admin添加验证码和多次登录尝试限制 不过就在内部使用的话就好很多,因此我们可以通过Django的中间件来实现IP过滤,所以本文中涉及到两个知识点,一个是Django的中间件,另外一个是P
Django解决跨域请求问题
几种方法 使用django-cors-headers全局控制**(推荐)** 使用JsonP,只能用于Get方法 在views.py里设置响应头,只能控制单个接口 django-cors-headers 首先安装 pip install django-cors-headers 然后在settings.py里配置一番就可以 INSTALLED_APPS = [ ... 'corshe
Django-Import-Export插件关于外键的处理
前言 Django-Import-Export是一款很好用很方便的Django数据导出导入插件,可以和DjangoAdmin管理后台完美集成,只需要少量的代码配置即可方便实现你要的多种格式导出导入,关于这个插件的使用更多可以看我之前的文章:这里放文章链接 之前我在使用中都是专门做了一个原始数据的表来存导入的数据,然后再对原始数据表做一些数据处理,把数据存到其他表才能真正使用这些数据。(不是很好的做
Django使用django-filer上传图片
前言 (好像不知道写啥) 注意 django-filer目前只支持到django 1.11 setting.py INSTALLED_APPS = [ # image support 'easy_thumbnails', 'filer', 'mptt', ] # Image Upload Support THUMBNAIL_HIGH_RESOLUTION = Tr
Django+Logging:日志记录配置与使用方法
前言 日志在程序开发中是少不了的,通过日志我们可以分析到错误在什么地方,有什么异常。在生产环境下有很大的用途。在Java开发中通常用log4j,logback等第三方组件。那么在django中是怎么处理日志?django利用的就是Python提供的logging模块,但django中要用logging,还得有一定的配置规则,需要在setting中设置。 Logging模块 Logging模块为应用
Django的信号机制入门
概念 django自带一套信号机制来帮助我们在框架的不同位置之间传递信息。也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将通知或信号(signals)发送给一组接受者(receivers)。 (感觉就很像Qt的信号与槽机制) 信号系统包含以下三要素: 发送者-信号的发出方 信号-信号本身 接收者-信号的接受者 Django内置了一整套信号,下面是一些比较常用的: 在
2021-11-03:2021年第六届沃网安竞赛-WriteUp-MISC部分
前言 最近好久没更新博客和公众号了,有朋友问是不是在憋大招,但我不好意思说其实是因为最近一段时间太懒了,一直在当咸鱼… 意识到很久没更新这个问题,我是想写点什么的,但好像一直当咸鱼也没啥可分享的,最近刚参加了一个CTF比赛,来分享一些作为CTF小白的解题过程和思路~ 由于篇幅太长,所以本文第一篇就先只发MISC部分,相比较于固定类型的几种题目,MISC是最好玩的,比较考验知识广度和想象力~~(而且
试一下用DotNetCore来做机器学习,ML-Net框架跑起来
ML.Net简介 官网:https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet 官方介绍:The ML.NET command line interface (CLI), provides tools for building machine learning models with ML.NET. ML.NET 是面向.NET
方便的C#-Json库:Json-Net
官网 Json.Net用法很简单,本文也只是搬运了一下官网的例子,更多用法可以查看官网,一分钟就能上手。 https://www.newtonsoft.com/json 使用例子 对象序列化 Product product = new Product(); product.Name = Apple; product.Expiry = new DateTime(2008, 12, 28); prod
在.NetCore(C#)中使用ODP-NET-Core+Dapper操作Oracle数据库
前言 虽然一直在说“去IOE化”,但是在国企和政府,Oracle的历史包袱实在太重了,甚至很多业务逻辑都是写在Oracle的各种存储过程里面实现的…… 我们的系统主要的技术栈是Django / Spring / AspNetCore,Java的不必说对Oracle支持肯定没问题,关键在于Django对Oracle版本有要求,兼容性不是特别好,Oracle版本没办法随意升级的,所以我想到用.Net
在.NETCore(C#)中使用EPPlus-Core导出Excel文档
首先安装 直接NuGet安装就行,贼方便。 使用方法 有很多种办法导出,本文只介绍最方便,代码最少的那种。 首先定义一个实体类,例如: public class OutputData { public string Address { get; set; } public int Title { get; set; } public int Description { ge
C#爬虫:CatSpider#-开发笔记
前言 (PS:我这里用了#号代替了Sharp这个单词) CatSpider是毕设里的数据采集模块,本来爬虫类的应用肯定使用python来开发嘛,不过用request_html做解析的时候,python的动态类型真的把我恶心到了,而且感觉这个库也不是很成熟,html5lib也不好用,也没心思去深入了,之前看到有大佬用.net core平台做爬虫,于是我也来试试,没想到效果贼好,特别是配合LinqPa
C#学习(二)匿名方法和委托的多种使用方式
前言 上次简单介绍了委托的概念和使用,今天继续,并且引入匿名方法的概念,匿名方法在很多语言里面都有,比如Python、js、java8,尤其js,前端小伙伴可能深受js回调地狱之苦,这里面匿名方法功不可没。 js的匿名方法就像这样: 这还没用lambda,因为我想下篇再介绍lambda。 document.querySelector('.btn').onclick = function () {
C#学习(三)深入理解委托、匿名方法和-Lambda-表达式
前言 lambda的概念建立在委托的基础上,委托,实现了类型安全的回调方法。在.NET 中回调无处不在,所以委托也无处不在,事件模型建立在委托机制上,Lambda 表达式本质上就是一种匿名委托。本文中将完成一次关于委托的旅行,全面阐述委托及其核心话题,逐一梳理委托、委托链、事件、匿名方法和 Lambda 表达式。 委托的定义 了解委托,从其定义开始,通常一个委托被声明为: public deleg
C#学习(一)委托的概念和使用
前言 C#学习系列是根据我以前的笔记整理出来复习,顺便发一下文章做个记录。 先引用一个介绍: C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。 根据使用其他
C#中AES加密的实现
AES算法简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日
梦想家装平台开发记录,Asp-Net-Core上手实践
DreamingHome Dreaming Home 梦想家,家装平台 EF Core概念 Model: 数据模型,一个普通的C#类 DbContext: 与数据库沟通的桥梁,一个数据库对应一个DbContext 注册EF Core服务 services.AddEntityFrameworkSqlite() .AddDbContextMainContext(options = option
跨平台框架AspNetCore开发实践杂谈
前言 最近边学边做,初步上手了AspNetCore的开发,对MVC这套熟悉了一下,因为之前没有拿来做过独立项目,都是和别人合作开发,所以前后端分离,我都只做WebApi,而且还是很小的项目(课设级别),生产环境用最多的应该是Python的Django框架,这次我把一个之前做的Django项目用AspNetCore重写一遍,性能提升了不少,C#的性能真不是盖的,AspNetCore这个框架的性能也很
该死的应用闪退,终于解决error-while-inflating-CardView
前言 (先来一个微笑脸)这个问题已经困扰我好久了,之前各种搜索无果,得到的解决方案无非就是 AppCompact 和 CardView 包的版本不一样云云,然而我根本没有这个问题。(怕是不把我Gradle看在眼里?) 问题 就是这么个界面,用到了RecycleView和Cardview,但是在SDK 23以下都不行,官方已经写明这个组件是支持到SDK9还是10的,反正基本是个android手机就可
记一次AndroidStudio在Linux环境上的奇葩错误,Argument-for-@NotNull-parameter-'messag
错误信息 Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync/GradleSyncState.syncFailed must not be null java.lang.IllegalArgumentException: Argument for @NotNull param
Android开发:解决在Linux上提示-dev-kvm-device-permission-denied问题
操作步骤 我用的是Ubuntu系统,首先需要安装qemu-kvm: sudo apt install qemu-kvm 将当前用户添加到kvm用户组: sudo adduser $USER kvm 检查/dev/kvm所有者: ls -al /dev/kvm 一般结果就是所有者是root以及kvm这个组 添加完了之后检查一下kvm组里有没有你的用户名: grep kvm /etc/group 一般
Android开发:对Gradle的折腾记录
前言 有点烦,最近给电脑升级一下配置,加了内存和固态硬盘,结果新内存不太兼容,导致电脑频繁死机,去找商家换了一条内存之后就好了,这也导致我贸然重装了系统 = =... 有一点资料放在系统盘忘记保存结果丢了。今天下午才把新系统配置好,所以这两天都没有办法写推文。 (不得不说Chrome真是好用,这同步功能免去了很多麻烦。) 首先喷一下Gradle 缺点:占用资源大,速度又慢,在国内用网络还很差。 今
Android开发:在Linux系统上使用ADB连接Android手机
前言 由于 Linux 系统的安全性设置等原因,非 root 用户使用外部设备或者某些硬件接口会受到限制。Google 官方提供的 SDK 并不能直接工作,如找不到设备或者显示一堆问号以及 Permission Denied。 方法 记得以前有看过 Google 官方提供的解决方案,即将指定的 USB 设备读写权限赋予普通用户。 首先使用 lsusb 命令查看连接到计算机的 usb 设备,找到 A
Android开发:使用CardView实现卡片式设计
开头引用一段官网的介绍 A FrameLayout with a rounded corner background and shadow. CardView uses elevation property on Lollipop for shadows and falls back to a custom emulated shadow implementation on older platf
Android-Studio-插件记录
GsonFormat https://blog.csdn.net/leejizhou/article/details/50557786 ButterKnifeZelezny http://blog.csdn.net/leejizhou/article/details/50541356 SQLScout SQLite调试神器。 http://www.idescout.com/ https://plu
Android-ORM-框架:GreenDao入门
GreenDao 简介 GreenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不在需要编写复杂的 SQL语句, 在性能方面,GreenDAO 针对 Android 进行了高度优化, 最小的内存开销 、依赖体积小 同时还是支持数据库加密。 GreenDAO 官网地址:http://greenrobot
电脑上的安卓系统——PhoenixOS浅度体验
前言 其实这篇关于PhoenixOS的浅度评测在几个月前就准备发了,当时是刚看到新闻说Android 7.0 x86的正式版刚刚发布,于是就下载来安装一番,结果.....体验极差= =,只能用这4个字来形容,不过既然体验Android x86,就不能扫兴而归,所以就把国产基于Android x86深度定制而颇有名气的PhoenixOS安装体验一番。 本文不涉及如何安装,因为安装过程很简单,如果有需
如何查看安卓模拟器的ADB端口号?
找到模拟器的进程 用tasklist查看进程pid tasklist 找到模拟器进程的PID,然后再使用netstat命令。 netstat -ano | findstr 1000 这里的 1000 就是上面查到的进程PID。 根据获取到的端口号,就可以使用 ADB 连接了。 adb connect 127.0.0.1:端口号 当然最好的方法还是去模拟器提供商的网站上查一下,这是最方便的。 例如我
在Android模拟器里取得root权限
前言 android 开发过程中程序很多时候免不了需要对系统目录下的内容进行操作,虽然android的内核是linux系统,但是在linux中切换到root下的方式是sudo root,但是在的android中并没有提供我们su文件。 So我们要向需要root的系统中添加su文件,同时改变su二进制文件的权限。 操作步骤 步骤一 将需要root的模拟器运行起来 步骤二 在有 supersu.apk
一加3升级Android9-0的刷机折腾之路
前言 你能想象一个16年发布的手机,到现在三年了,从一开始的Android6.0到现在的Android9.0吗?这系统更新的周期,可以说是比较良心了~ 不过这次升级Android9.0 虽然说是官方给出的ROM包,不过还是有一些小坑的,折腾了一个下午和晚上才最终装上去,也可能是我太久没有刷机了,生疏了不少吧。 先放截图 系统镜像下载 首先去官方通道下载镜像: 官方的Android9.0现在出到第二
Android-x86-7-1-稳定版初体验
前言 最近Android x86发布了7.1的稳定版本,作为一名~~伪极客~~,自然是要安装体验一下。 关于在电脑上可以用的Android系统,可能大部分人了解的都是 Remix OS 和 Phoenix OS 这两个。不过这两个也是基于Android x86的nightly版本构建的,还是原版的才原汁原味呐。 这里不得不吐槽一下,这个Android x86项目的官网真是简陋,只有这么一个捐赠的海
轻松解决百度云限速问题
前言 360网盘关闭后,百度网盘似乎要成为国内网盘的唯一选择,但百度的“吃相”难看,无论你用多大的带宽,只要没有会员,下载速度永远都是是100k/s,稍微大一点的文件就需要安装客户端才能下载,烦人得很。 今天介绍一种非常简单的方法解决百度云的限速问题。需要用到Tampermonkey浏览器插件和百度云下载脚本。 Tampermonkey介绍 Tampermonkey 是一款免费的浏览器扩展和最为流
解决Chrome浏览器强制http重定向到https的问题
在chrome地址栏中输入 chrome://net-internals/ 选择 Domain Security Policy 在 Delete domain security policies 标签里输入要删除的域名
苹果竟然给我发这种邮件?这是什么新骗局
今天突然收到一封邮件,说是我的Apple ID被锁了,要我点击链接登录解锁,一开始我是觉得挺烦的,上个月我的美区ID刚被锁了,折腾了很久联系了台湾的客服才给解锁的,现在我国区的ID也被锁了?苹果怕是药丸。 不过看这封邮件总觉得有什么不对劲的地方…… 你这apple单词的e好像不是英文字母吧,如果苹果公司发来的邮件会是这个?而且这发件的邮箱也不对啊,没见过这域名,苹果的难道不是apple.com吗?
抓住九月小尾巴的小总结,祖国生日快乐~
为期一个月的实训到27号就结束了,我估摸着这夏天也快结束了,到处是秋天的味道。 这个月在广州还是以学习为主,在培训班能学到的很有限,不过我自己倒是折腾了不少东西出来,感觉还蛮好的。 技术学习方面 培训班也不能说没用吧,至少是前端扫盲了,在此基础上我自己又看了一下书,学了布局、动画和一点点js啊,js其实真的挺好用的,收回我之前的成见~(少见多怪) 还用js做了几个好玩的东西,比如说斗鱼、B站刷弹幕
我的新博客上线了,附上Hexo博客折腾记录
鉴于简书和知乎经常以各种理由删除我的博客,之前我的WordPress博客又已经坏掉了,所以我一直想搞一个新的博客,这不看上了hexo静态博客了,直接托管在github上方便又免费。 配置啥的官方文档都很详细了,不再赘述。 博客地址:http://blog.deali.cn/ 各种配置,我还花了一天时间来写脚本把我的旧的博客导入,图片下载,做了替换等等工作,期间也出了很多问题,感觉很烦,很浪费时间,
我也入坑折腾黑苹果,还成功了~
前言 Windows真的太难做开发了啊。。。Linux本来是最好的选择,然而又缺少太多软件,像微信、QQ这些就是想都不要想腾讯会给你开发的,用wine版本的又卡,用网页版又不能发表情包= = 所以很难受,也没有多少选择了,只剩下一个mac可以选,但是苹果电脑又贵性价比又低,怎么可能买mac呢,于是只能黑苹果啦~~ 先放一张桌面的截图吧,免得后面字太多没人想看。 其实在以前我就了解到有黑苹果这种东西
开源博客系统哪家强?到底要自己做还是GitHub见?
国人基于.NetCore + Vue开发的 后端:https://github.com/anjoy8/Blog.Core 前端:https://github.com/anjoy8/Blog.Vue 管理界面:https://github.com/anjoy8/Blog.Admin 外国的 https://github.com/blogifierdotnet/Blogifier
广州的夏天格外的热:9月实训心得小结
emmmm 不知不觉间来广州已经两个多星期了,本来打算一周写一篇小结的,结果上个星期感冒了在宿舍休息,前几天又中秋假期出去玩了,就一直拖着了...... 这个实训说好听是什么实习,结果就是学校和培训班合作,把我们塞到这里来集中体验培训,但是又不会教你很多真正有用的东西,谁要是觉得好就交钱上正式培训班,住宿贼贵,环境还贼差,还好只有一个月的时间,咬咬牙就过去了,其中的猫腻不言而喻...... 说说学
喆大师写给前端的一些建议
书籍推荐 《 jvascript高级程序设计(第三版) 》 偏字典书籍,江湖人称望远镜,红宝石书,红皮书,更多叫法等你去发现 《 javascript权威指南(第五版)》 就是字典,江湖人称 犀牛书,特点:厚,全 《 javascript语言精粹 》 一位在 js 界很有权威的人写的书,作者是json的发明者 江湖人称 蝴蝶书,特点:薄 完全就是在讲 js 语法,不涉及前端,顺便屌了一些开发人员
修改_Inotify-Watches-Limit_提高idea性能
官网说明 For an intelligent IDE, it is essential to be in the know about any external changes in files it is working with - e.g. changes made by VCS, or build tools, or code generators etc. For that reaso
使用国内NPM镜像源提高速度
NPM介绍 npm(全称 Node Package Manager,即“node包管理器”)是Node.js默认的、以JavaScript编写的软件包管理系统。 npm可以管理本地项目的所需模块并自动维护依赖情况,也可以管理全局安装的JavaScript工具。 但是由于npm的源在国外,所以国内使用起来动辄10kb/s,甚至根本下载不了,所以使用国内镜像源替代官方源就很有必要了。 国内源 淘宝np