分类目录归档:理工

使用url名称替代绝对或相对路径(django举例)

绝对路径和相对路径往往更易于理解,新手常使用路径引用某个文件,从而使构建的代码不够稳定。

在 Django 中设置 LOGIN_REDIRECT_URL 时,推荐使用 URL 的名称而不是相对路径或绝对路径。

这样做的好处是,如果未来更改了 URL 的结构,只需要在 urls.py 中更新 URL 的名称映射,而不需要在代码的其他部分进行修改。

最佳实现:"使用 URL 名称"

settings.py 文件中,将 LOGIN_REDIRECT_URL 设置为希望用户在登录后重定向到的 URL 的名称。例如:

# settings.py
LOGIN_REDIRECT_URL = 'playlis

Read more (42 views)

白话常见开源协议

GitHub上的开源协议是一组规则和指南,用来定义别人可以如何使用、修改和分享在GitHub上发布的代码。

就像是在你的代码上附加了一份使用说明书,告诉别人他们可以或者不可以做什么。

下面我用通俗的方式解释几种常见的开源协议:

  1. MIT许可证
    • 这是一种非常宽松的协议。想象你做了一个蛋糕并告诉大家:“你们可以随意吃这个蛋糕,可以加点你们喜欢的东西,也可以给别人一些。只要你告诉他们这个蛋糕最初是谁做的就行。”
    • 使用MIT协议的代码,别人可以自由地使用、修改和再发布,只要他们在代码中包含原始许可证的副本。
  2. GPL(GNU通用公共许可证)
    • 这是一种更严格的协议。它就像是说:“你可以用这个蛋糕,

Read more (179 views)

阿里云oss+obsidian同步方案

obsidian的syn服务每月10美元,价格稍贵,用过坚果云替代同步方案,ios上无法连接,并且调用api有次数限制。发现obsidian remotely save 插件支持s3同步,国内的阿里云oss也能胜任。

步骤

1.开通阿里云oss的资源包,9元/年,有40G容量。

2.创建bucket,名为yourname-obsidian-vault name,权限为私有。

权限为“私有“

数据无价!建议开通版本管理(注意:开通后不能关闭)

阿里云OSS bucket要求名称不能唯一,用yourname手动区分不同用户的名称

vault name建议和本地要同步的仓库名称一致,避免混淆。

3

Read more (378 views)

chatGPT插件的划时代意义

"你以为公司给你配了台电脑,实际上是公司为这台电脑找了个工人。有些坐在办公室的工作,本质上还是体力劳动。"

chatGPT插件的意义

2023年3月23日,chatGPT正式宣布向个别厂家内测插件。

当chatGPT+成为现实,人和操作系统里各种复杂的流程化交互将会被简化为人和chatGPT的交互。

你只需向chatGPT表达出需求,chatGPT使用各种接口返回给用户信息!

比如在excel里和chatGPT说“根据名字去信息表里找到对应的身份证号,把结果放在第三列”。

chatGPT封装了更高一层"系统"和人类交互。不用再去管是windows、linux、macos、android、ios

Read more (465 views)

/sys/class/backlight变成了空路径

背景

1.archlinux笔记本亮度突然调节不了。

2.查看"/sys/class/backlight/"这个路径,发现里面的文件全都空了。

3.以为是更新系统出现了bug。

4.根据archwiki的提示,修改"/etc/default/grub"里的acpi_backlight无效。

解决

修改"/boot/grub/grub.cfg"(装系统时设定的grub配置文件)

acpi_backlight=vendor

改为

acpi_backlight=native

重启,解决。

Read more (318 views)

django储存数据库连接信息

背景

django需要和mysql数据库连接,但是因为代码开源,如果把密码明文直接放在文本里会非常不安全。

经过试验,找到了django储存数据库连接信息的最佳方式。

解决

直接存在当前机器的环境变量里!

以Linux举例

写入shell配置文件里

我用zsh,就在使用用户下的.zshrc里边加入:

export ALIYUN_RDS_1_PASSWORD="password"
export ALIYUN_RDS_1_NAME="database name"
export ALIYUN_RDS_1_USER="user name"
e

Read more (341 views)

homeassistant deploy: No module named '_sqlite3'.

背景

遇到一个坑:homeassistant部署后提示_sqlite3依赖找不到!

可是libsqlite-dev已经装有。

???

发现

因为Homeassistant最低需要Python3.9起步,raspberryPi国内镜像只有3.7版本(国外镜像慢得出奇就没加入源,也不知道有没有),只能自行编译安装。

官方默认sqlite可以被python调用的,但自己编译的就很孤立。于是configure的时候没有加进去!!!不说这谁能知道!

1.确认已经安装好所需要的依赖:

sudo apt-get install libsqlite3-dev

2.编译的时候加上sqlite的拓展!!!

./

Read more (361 views)

堆排序

2022下半年软考软件设计下午算法题:实现大顶堆排序。

因为复习没到位,导致该题全错!此处补上知识点。

堆排序实现:

1.构建初始大顶堆。

2.最后一个元素与第一个元素交换位置。

3.重排堆。

4.排完后的堆按自下而上插回顺序表。

HeapSort.cpp

#include <iostream>
using namespace std;
#define  MAXSIZE  20    //顺序表的最大长度

//定义顺序表数值结构
typedef struct
{
    int key;
    char *otherinfo;
}ElemType;

//顺序表的存储结构   

Read more (361 views)

python操作excel

需求

某网站导出的excel表需要先变换格式才能整合进新表。

每次都要手动:取消单元格合并->筛选->升序排列->删除多余列。

处理前

修改前

处理后

修改后

让程序来做这些枯燥而重复的工作!

考虑到vba只能对单个excel执行,而c++库太少,python有丰富现成的库,所以选择python作为实现语言。

过程:

①读取文件路径作为变量。

②拆分带有合并的单元格。

③A6~AH14范围内,按A6升序排列。

④删除多余列。

⑤保存并退出。

面向过程,当脚本使用。

代码如下:

filename : dataProcess.py

import xlwings as xw
import t

Read more (212 views)

使用aircrack-ng破解wifi密码

免责声明:本文所攻击路由器为本人个人路由器。此网络技术只作研究,请勿用于不正当渗透。

1.停止网络管理的守护进程。

sudo systemctl stop NetworkManager.service wpa_supplicant.service

2.查看网卡名称。

iwconfig

我的网卡名称为wlp1s0。

wifi破解2

3.网卡设成监听模式。

sudo airmon-ng start wlp1s0

如果设备是单网卡,此操作会断开正连接的网络。

wifi破解3

4.扫描附近wifi。

sudo airodump-ng wlp1s0

wifi破解5

记住要破解的wifi的MAC地址和信道CH。

这里MAC地址为:18

Read more (262 views)