Web后端:Django使用DRF的序列化出结果为空的原因,DRF的Serializer和ModelSerializer的区别
开发的时候使用DRF做数据查询接口,将models交给序列化器出现了问题。
运行环境 Runtime environment123操作系统 : Ubuntu18.04IDE: JetBrains pycharm 2019.2.4 x64Python: 3.6
背景开发的时候使用DRF做数据查询接口,将models交给序列化器出现了问题。
数据明明存在数据且查询成功的情况下,经过序列化就为空字典。
而且无法通过is_valid验证,于是我就奇了怪。
经过对照自己以前开发的代码,发现自己忽略一些细节。
之前的开发的序列化器继承于ModelSerializer而非Serializer
Serializer是不支持直接fields = "__all__"的,不能自己直接映射models。
Serializer和ModelSerializer的区别
总结程序开发切勿急躁呐。
小技能GET:fork别人项目后,如何同步更新别人的项目提交
有些代码仓库,错过了就永远错过了,所以我成为了fork狂魔。但是别人的项目有了更新,我要如何同步自己fork的仓库呢?
运行环境 Runtime environment12操作系统: win10 Python: 3.7.4
背景有些代码仓库,错过了就永远错过了,所以我成为了fork狂魔。
但是别人的项目有了更新,我要如何同步自己fork的仓库呢?
以这样的需求为背景。
Github Web操作更新应用场景:不想在本地clone仓库内容来处理,而是直接操作网页完成同步操作。
打开自己fork仓库,进入code选项卡,点击new pull request 创建
更换一下base repository和head repository的仓库和分支,右边是拉取源,左边是被同步。左右别弄错了,不然就是你自己提交到别人那里去了。
填写以下创建拉取请求的信息
创建成功以后点击 Merge pull requests,完成合并即可
总结简单几步,即可完成同步别人的仓库提交了。
Web后端:CloudFlare_Workers_设置使用自己的域名
CloudFlare 是全球知名 CDN 解决方案和域名注册解析方案供应商,Workers 是其前不久推出的一款基于其强大的 CDN 全球云网络上的无服务器应用程序。
运行环境 Runtime environment123操作系统 : Ubuntu18.04IDE: JetBrains pycharm 2020.2.1 x64Python: 3.6.9
背景Workers创建的域名的比较长(*.*.workers.dev),域名比较长,不适合分享
这算是个不大不小的东西,故而这里做个记录供参考。
注意耍小聪明使用CNAME来接入CloudFlare Workers是没用的,会出现各种奇怪的错误。
自定义的域名必须托管在CloudFlare上,且Name Service也必须是CloudFlare提供的。
这里不再教如何创建CloudFlare Workers了,只讨论如何给workers设置自定义域名。
域名托管因为博主的域名是在 namesilo 上购买的,所以以它为例子。
对域名解锁,然后点击ChangeNameServers
更改NS内容:
12doug.ns.cloudf ...
Web后端:Django-rest-framework的使用
Django DRF 的文档一看过去,就头晕目眩。将实践DRF应用做个记录,方便查阅。
运行环境 Runtime environment12345操作系统 : Ubuntu18.04IDE: JetBrains pycharm 2019.2.4 x64Python: 3.6.9Django: 3.0.5djangorestframework: 3.11.0
背景使用django开发应用接口,方便做到前后端分离的开发。说真的,现在越来越多有力的框架出来,以后可能django市场份额会不会越来越少呢?比如,现在新兴的fastAPI,我是感觉可以把flask淘汰了。以后有机会要学学这个框架了。
项目结构Django 怎么开展项目和创建、封装app应用就不赘述了。
1234567891011121314151617181920212223├── apps│ ├── __init__.py│ └── search│ ├── admin.py│ ├── apps.py│ ├── __init__.py│ ├── migration ...
疑难杂症:使用docker_exec_-it_bash的时候报错是什么原因?
想修改docker 容器里面的文件,使用exec命令的时候莫名的进不去。出现报错!
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused “exec: "bash": executable file not found in $PATH”: unknown
运行环境 Runtime environment123操作系统 : Ubuntu18.04 IDE: JetBrains Pycharm 2019.2.4 x64 Python: 3.6.9
症状查询当前docker进程,用来查看容器ID
docker ps
exec 命令进入容器内部进行修改
docker exec -it 容器ID /bin/bash
发生报错
1OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused &q ...
小技能GET:小技能GET:xip-io网站的使用
偶然发现的一个很方便的工具网站,可以方便的将ip地址解析成一个域名。
运行环境 Runtime environment1操作系统: win10
背景因为某些需求,不能使用IP来进行直接访问,又或者想对IP做一层DNS。
如果对保密性要求上不高且希望降低成本的话,可以使用xip.io网站工具。
使用 http://xip.io/ 这个网站的功能,使ip变成域名
www.10.0.0.1.xip.io解析为10.0.0.1
网站使用方法http://xip.io/ 进入查看说明
总结对于那种有大量服务器IP要维护且对解析没有太高要求的人,这网站工具就非常的方便。
Web后端:nginx开启IPV6支持配置
使用海外服务器,当然要好好利用ipv6了,不用白不用。
运行环境 Runtime environment123操作系统 : Ubuntu18.04IDE: JetBrains pycharm 2019.2.4 x64Python: 3.6.9
背景IPV4日益稀缺,ipv6已经慢慢走上日程,待ipv6在国内普及,使用nginx配置ipv6那是肯定的,如何让nginx支持ipv6以及配置.
查看nginx是否支持ipv6没有出现–with-ipv6,说明当前的nginx不支持ipv6,所以我们需要重新编译nginx,配置里面增加–with-ipv6.
安装过程就不赘述了。
12345nginx version: nginx/1.16.1built by gcc 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)built with OpenSSL 1.1.1b 26 Feb 2019TLS SNI support enabledconfigure arguments: --user=www --group=www --prefix=/www/server/n ...
疑难杂症:nginx反向代理中无限重定向的解决办法
感觉碰到这个问题好几次了,原因都一定相同。造成无限重定向这一问题的诱因有挺多种,就再记录下一种。
运行环境 Runtime environment123操作系统 : Ubuntu18.04 Python: 3.6.9nginx:1.16.1
症状我的这个网站使用了多个域名:
yiwuwuyi.net(主域名)yiwuwuyi.cn(主域名)yiwuwuyi.ukyiwuwuyi.org还有一个旧域名:proj.org.cn
两个主域名中,yiwuwuyi.net主要服务国外用户、yiwuwuyi.cn主要服务国内用户。而yiwuwuyi.cn是通过反向代理yiwuwuyi.net来提供服务的,再在前面使用腾讯CDN进行加速,减少带宽压力。
在配置完成后我发现一个问题,我网站中有一些诸如留言框、搜索表单等交互性的功能,在输入内容并提交后可以到达后端服务器,但后端返还的内容却显示为空白页。通过浏览器控制台检查,发现腾讯CDN返还了一个他们自定义的响应码。
在经过一系列测试后,我可以肯定我的主站(yiwuwuyi.net)是正常的,所以问题出现在国内主站(yiwuwuyi.cn)中。再 ...
小技能GET:练习搭建SSPanel魔改版是碰到的问题
进来看到某些机殇就像是用一个月饼模子拍出来的一样,就很好奇是怎么来的。因为觉得它的UI写得好好看,好对我胃口,就想研究研究..欸嘿嘿
运行环境 Runtime environment123操作系统: Ubuntu 18.04.4 LTS php: 7.4 mysql: 8.0
背景按照它的说明文档,使用宝塔一顿操作猛如虎。干了兄弟们,然后打开域名地址...出现了各种问题。
为此,我还以为是自己操作哪里不对,哪部操作错误了,有重装了两次..还是一样的问题,很是疑惑。
在这里,就不赘述安装过程了,只解决问题。
Failed opening required嗯?警觉!这是什么错误?顺着上面警告的路劲我摸到那个地方。
123456解决办法: 找到/www/wwwroot/你的网站文件夹/config/ 把里面appprofile.example.php文件,改名或者复制出appprofile.php文件即可 这里我是直接cp复制一下 cp appprofile.example.php appprofile.php 即可
404确定宝塔已经是在网站 ...
小技能GET:conohaVPS设置开启IPV6
VPS 用conoha用习惯了,虽然说这一家的VPS性价比真的一般,但是架不住看板娘可爱。
运行环境 Runtime environment1操作系统: win10
背景想尝试一下使用IPV6部署网站,IPV4是不是在国内访问有些问题。
所以打算使用IPV6来做NS上面AAAA记录
检查VPS是否已经默认开启IPV6
ifconfig # 因为部分VPS可能已经默认开启了,所以先用命令看看是否已经开启
12345678910****@*****:~# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet * netmask * broadcast * inet6 * prefixlen 64 scopeid 0x0<global> # 这行global的如果存在就代表已经默认开启了 inet6 * prefixlen 64 scopeid 0x20<link> ...