error: gpg failed to sign the data

pkill gpg-agent $ gpg-agent --daemon $ git commit ...

参考: https://stackoverflow.com/questions/39494631/gpg-failed-to-sign-the-data-fatal-failed-to-write-commit-object-git-2-10-0

清华的pip镜像貌似要比阿里云的同步得及时一点.

https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

开发模式安装 pip install -e ./ # 指向有setup.py那个目录

打包上传: https://packaging.python.org/en/latest/tutorials/packaging-projects/ 直接去官网看文档, 比在中文互联网里查那些只言片语的教程节约时间.

发现一个有趣的把整型id转成唯一字符串的实现,

有趣的不是这种实现, 而是他们居然把各种语言(有些非常冷门的)的实现都拉到一块来了 https://hashids.org/

step 1. 

ssh-keygen

step 2.

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100

step 3.

ssh root@192.168.1.100

远程执行命令 

ssh root@192.168.1.100 "df -h"

多条

ssh root@192.168.1.100 "pwd; cat hello.txt"

Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-ad68cff97c8e -j RETURN: iptables: No chain/target/match by that name.

systemctl …

新版的树莓派OS ntp服务各种报错, 不知道为什么.

改装rdate

sudo apt-get install rdate #树莓派第一次使用需要安装rdate

sudo /usr/bin/rdate -s time.nist.gov #/usr/bin/ 是命令默认所在目录;-s 表示将获取的时间保存到本地;time.nist.gov 是美国标准技术院的服务器

crontab -e #添加到定时执行

#在打开的文件中,添加如下语句

0 12,22 * * * sudo /usr/bin/rdate -s time.nist.gov …

试了网上N多方法都不行, 

https://github.com/RaspAP/raspap-webgui 这个很好用也傻瓜化, 但是我不想要这么重, 又PHP又啥的一大堆, 我只要连上我的一个Web应用就好了.

hostapd的文章也看了N多, 一次都配置不成功.

最后参考一个用热点来当诱骗器搞坏事文章里弄成功了, 不用hostapd, 直接通过wpa_supplicant 来实现.

怎么用树莓派制作一个流氓热点: https://jerryryle.github.io/rogueportal/

跟文中的步骤不一样的是, 我不用他的web应用, 略过nginx那一节, 保留了ssh通道, 并且给热点设置了密码.

----------------- 防止链接失效, 记录下关键步骤 ------------------

安装必要的包:

sudo apt install dnsmasq iptables-persistent macchanger …

Mac上代码跑得好好的, 树莓派zero安装cryptography, 运行的时候老是报illegal instruction

昨天晚上折腾了一夜, 查Google, 换python版本, 重装openssl相关库

不成功

不装最新版, 降级, pip install cryptography==35.0.0

成功了, 真是个运气活

自从大部分应用用Docker来部署后, 很少直接用uwsgi的方式部署django了, 最近部署一个应用在树莓派zero上, 因为板子性能太低, 不想用Docker, 参考:

https://blog.csdn.net/fm0517/article/details/80942135

勘误: emperor模式 的命令 wsgi --emperor /etc/uwsgi/vassals 应该为 uwsgi --emperor /etc/uwsgi/vassals

另外, 若出现权限不足的提示, 删除掉临时的sock文件

如果想用自动化, 请参考:

https://github.com/laonan/certbot-dns-name-com

如果不嫌麻烦, 三个月手动搞一次, 请参考:

https://blog.longwin.com.tw/2021/08/certbot-renew-failed-manual-auth-hook-2021/

就两步, 需要更新DNS的Text记录:

/usr/bin/certbot certonly --preferred-challenges dns-01 --manual -d 'YOUR-DOMAIN.com,.YOUR-DOMAIN.com' ... 再來會需要去 DNS 增加 txt 等資訊 (話說,跟重做差不多意思) 完成後就完成更新 /usr/bin/certbot renew # 再次 renew 就都正常了

如果仅仅只是为了复用字段, 不要直接从另外一个可以实例化的model继承, 否则删除基类数据会把派生类也删除掉.

另外建立一个抽象基类的model出来

要重构一个项目,想着先在build 一下  docker image

输入命令之后就跟儿子去山上玩去了,周末两天居然都还在检查pip。。。

周一上班一项一项的试,终于发现罪魁祸首是 social-auth-app-django ,反正也要换成django-allauth,注释之

nginx做反向代理, 要是取到的是内网网址,

daphne命令加上--proxy-headers

CMD ["daphne", "-b", "0.0.0.0", "-p", "1000", "--proxy-headers", "niubiapp.asgi:application"]

把wsgi改为asgi部署之后,websocket 一直报404

nginx配置按文档修改,正常运行了。

https://channels.readthedocs.io/en/latest/deploying.html#http-and-websocket

碎叫。

面对微信api编程,他娘的就像在缝缝补补科学怪人,离优雅十万八千里。

长久以来一直用WSGI部署Django应用,最近上Django Channels,wss部署到生产环境不管用了,

把gunicorn换成daphne, 

Dockfile 最后增加命令

CMD ["daphne", "-b", "0.0.0.0", "-p", "8888", "nameniubiapp.asgi:application"]

搞定。

一直报错,重写/socialaccount/authentication_error.html 里把报错信息放出来,居然是unicode的繁体中文“無法載入網址: 這個網址的網域未包含在應用程式的網域中。若要載入這個網址,請在應用程式設定的「應用程式網域」欄位中新增應用程式的所有的網域及子網域” Blabla, OAuthException code: 191

去github的issues看有不少人提问这事,作者回答“你们在FB那边的配置问题,哥爱莫能助”。。。

无意发现这里 https://stackoverflow.com/questions/52182995/django-allauth-and-facebook-url-blocked-challenge

他说他加上以下配置,完了还报错:

 

ACCOUNT_DEFAULT_HTTP_PROTOCOL = "https" DEFAULT_HTTP_PROTOCOL = "https"

 

然后我加上,正常了。。。

半年前一个vue项目更新一下居然出这么多版本方面的幺蛾子, 个人或者是公司内部少数人用的应用,还是直接django admin来得快和简单。

在django admin的 change list界面里,自定义一个action, 当执行这个action之后,一般来说页面会刷新,所有选中状态会消失,

查了半天也没发现有太简单的方法,什么重写一个template等等,就为了一个选中状态,懒得搞。

于是在action中用mark_safe标签把一个带值的hidden渲染到页面,admin class 里增加两个js媒体文件,根据id值自动点击之。

class ReceiptAdmin(admin.ModelAdmin): ... def sum(self, request, queryset): sum_ids = [] for q in queryset: sum_ids.append(q.id) receipt_sum = queryset.aggregate(Sum('amount')) self.message_user(request, mark_safe(f'选中的发票金额合计: {receipt_sum["amount__sum"]} …
  • 第 1 页 / 共 10 页
  • 下页