Django-补
Django 入门1. 安装Django1pip instal django
2. 创建项目终端
打开终端
进入某个目录创建项目
执行
1django-admin startproject 项目名称
django项目中会有一些默认的文件和文件夹,稍后会对其解释
pycharm
特殊说明:
通过命令行创建项目是标准的
pycharm,在标准上加入了一点东西
创建了一个templates目录
添加了templates路径设置
删除[]中内容
默认项目文件:
123456789└─mysite │ manage.py 【项目的管理,启动项目,创建app,数据管理】 │ └─mysite settings.py 【项目配置】 urls.py 【url和函数的对应关系】 wsgi.py 【接受网络请求 同步】 asgi.py 【接受网络请求 异步】 __init__.py
3. APP12345- 项目 - app 【用户管理】【有独立的 ...
不基础的python基础-补
python一些细节开始此文档目的是对python的细节进行补充,内容和知识点比较零散,更新时间不定。
1.1 默认参数已知如下代码1234class Player: def __init__(self, name, items): self.name = name self.items = items情形1:当我实例化两个玩家时12p1 = Player("alice", [])p2 = Player("Bob", [])会发现大部分玩家默认都没有任何道具。此时,想到python重载机制,利用默认参数进行重载。既然大部分玩家默认没有道具,能否定义一个默认参数对每一个玩家进行初始化呢?1234class Player: def __init__(self, name, items=[]): self.name = name self.items = items这样,在进行实例化时,无需传入一个默认的道具参数。123p1 = Player("alice")p2 = Player("bob")p3 = Player("Ch ...
STM32究极复杂的定时器
高级定时器在APB2总线上,基本和通用定时器在APB1总线上
STM32裸机与FreeRTOS下串口协议选型与对比
用于调试的串口当我们希望查看一些变量的值又不能使用调试器的时候,通常用printf将变量打印到终端查看,当目标设备是诸如STM32,Linux开发板等设备时,我们与其交互的终端是通过UART串口通信实现的,所以需要通过重定义putchar函数将输出流重定向到串口。先向include路径中加入gcc标准库路径,帮助LSP找到stdio.h头文件路径12345target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add user defined include paths # 此路径取决于你安装的工具链,请自行查询工具链目录,找到含有stdio.h文件的目录。 /usr/arm-none-eabi/include)在usart.c末尾加入以下内容1234567891011#ifdef __GNUC__/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') call ...
在Archlinux下配置stm32开发环境
安装软件1yay -S stm32cubemx arm-none-eabi-gcc arm-none-eabi-newlib stlink openocd
stm32cubemx : 用于配置外设,时钟并生成CMAKE项目,方便使用VScode开发。
arm-none-eabi-gcc : arm编译工具链,用于编译stm32代码。
arm-none-eabi-newlib : 解决一些库找不到的问题。
stlink : 使用stlink烧录,调试。使用Stm32cubeMX生成项目编译和烧录程序使用vscode打开生成的项目,打开终端,运行1234mkdir buildcd buildcmake ..make
之后会生成elf固件,stlink需要我们将其转换成bin文件才能烧录。1arm-none-eabi-objcopy -O binary test.elf test.bin
使用stlink将bin文件烧录至stm32开发板1st-flash write test.bin 0x08000000
为简化构建烧录步骤,可编辑CMakeLists.txt文件,添加自定义命令和伪 ...
正则表达式
正则表达式1.基础字符组: 由“[]”包裹
12345678[Pp]ythonPython python P[python]# 区间[a-zA-Z][0-9]# 特殊字符[\-] :\ 加上特殊字符# 非集[^a-z] :匹配非小写字母的其他任何元素
快捷方式
12345\s:空白, 换行\b word\b:单词边界\d:数字\w:字母 \W:匹配特殊字符非集:\S \B对应字母大写即可
字符的开始与结束
123456^:单词开始实例:python 123456 python^python : *python* 123456 python$:以n结尾python$ : python 123456 *python*
任意字符
1. :匹配任意字符,不能匹配换行符
可选字符
123? :字符出现零次或一次 非贪婪模式honur honrhonu?r : *honur* *honr*
范围、重复区间
1234\d{9}\d{1,9} : 贪婪模式 有9个匹配9个\d{8,9}? : 匹配8个数字不匹配9个,非贪婪模式\d& ...
算法基础图论
并查集可以合并,可以查询联通关系的集合。初始化1pre[i] = i;找根1234int root(int x) { if (pre[x] == x) return x; return root(pre[x]);}合并123void merge(int u, int v) { pre[root(u)] = root(v);}查询u,v是否联通123void query(int u, int v) { root(u) == root(v);}路径压缩:经过找根操作后,直接将每个点的出点指向根。123void root(u) { pre[u] = pre[u]==u ? u : root(pre[u]);}换根操作:多出一个节点或一个连通块,可以将这个节点或连通块的根指向原来的连通块根,也可将原来的根指向新增的节点或连通块,前者称为按秩合并(小->大)。
123456789101112131415161718192021222324252627282930313233343536373839404142434445#include <algorithm>#include ...
算法基础数论
因数和质因数分解质数判断复杂度:12345678910111213141516171819#include <iostream>using namespace std;using ll = long long;const int N = 2e5 + 10;const ll inf = 4e18, p = 998244353;bool isprime(int x) { if (x<2) return false; for (int i = 2; i * i < x; ++i) { if (x%i==0) return false; } return true;}int main() { int n; cin >> n; cout << isprime(n);}
分解因数1234567891011121314151617int main() { ll n; cin >> n; vector<ll> v; for (ll i=1;i*i<=n;++i) { if (n % i) ...
pytorch基本用法
数据集和数据加载器数据集
提供了一种方式获取数据及其label以官方文档中的数据集为例1234567dataset├── train // 训练集│ ├── ants // label目录,有对应图片│ └── bees└── val // 测试集 ├── ants └── bees
为网络提供不同的数据形式,例如batch
使用dataclass封装数据集123456789101112131415161718192021222324# 导入模块及获取helpfrom torch.utils.data import DatasetDataset??import torchimport cv2class Mydata(Dataset): def __init__(self, root_dir, label_dir): self.root_dir = root_dir self.label_dir = label_dir self.path = os.path.join(self.root_dir, self.label ...
FreeRTOS概念-1
实时操作系统(Real-time operating system, RTOS),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。
概念:TICKtime slicing 的最小单位,可在menuconfig中更改,一些函数如12vTaskDelay(tick);vTaskDelay(1000/portTICK_PERIOD_MS);是以tick为单位延时,对应的宏为portTICK_PERIOD_MS,可写第二行代码转为毫秒。
概念:MUTEX多线程访问全局变量,解决重复写入和冲突等问题。相当于创建一把钥匙,这个钥匙可以用来访问全局变量,每个任务可以选择性获取和给出这把钥匙,避免多个任务对全局变量的修改冲突。123456789101112131415161718192021222324252627282930// 创建钥匙SemaphoreHandle xMutexI ...