Django
环境配置
pip install pylint-django
Field options
null & blank
- null是数据库相关的,只影响字段属性: Null,表单提交的时候依旧不能为空,只能sql语句设置为NULL
- blank是验证相关的,允许表单提交为空(除非特殊情况,尽量用blank)
For both string-based and non-string-based fields, you will also need to set blank=True if you wish to permit empty values in forms, as the null parameter only affects database storage. ref
字段类型(Field types)
关系映射
一对多:
- 在“多”的model里写外键
-
反向查询:
- “一”的model里通过
related_name
属性来访问其关联项,related_name
可在定义外键时指定,默认为[“一“的model名]_set
“一”的model里会自动添加一个隐藏属性:[“一“的model名]_set
,可用related_name
参数指定该属性名。即related_name
默认为[“一“的model名]_set
- 这个
related_name
属性是“一”的model的objects:可通过.all()
来查询所有数据
- “一”的model里通过
关系映射的序列化规则
通过嵌套序列化,可以同时查询并返回多个关联项的数据
重写model的delete()函数
下列情况会发生调用:
- 一个实例调用delete()方法时
- 在admin中删除单个数据项时
-
注意:
QuerySet调用delete()时,虽然是删除QuerySet里的所有数据行,但并不会调用model的delete()方法,而是直接通过SQL语句执行批量删除
自定义动作函数
用于在admin页面批量操作多条数据
Django Shell
可以在不运行完整项目的情况下,选择性地运行部分代码,一般用来测试一些函数或模型
敏感信息
settings.py
默认硬编码(hardcode)了一些敏感信息:SECRET_KEY
和数据库密码
为防止把项目部署到网上、上传github时泄露敏感信息,可以将hardcode改为从本地读取:环境变量或文件
MySQL
初次进入
sudo mysql
初始用户
/etc/mysql/debian.cnf
文件中有默认的用户名和密码 ref
基本操作
create database [DATABASE NAME] default charset utf8;
创建数据库(utf8支持中文)
show tables;
- 查看当前数据库有哪些表
- 其中Tables_in_XXX的XXX就是当前数据库的名字
desc [table];
查看表的字段信息(desc -> describe)
select * from [table]\G;
格式化打印表中的所有数据行
show create table [table];
显示表的创建命令
drop database [database];
删除数据库
备份&恢复
- 备份为sql语句
mysqldump -u[user] -p [database] [table1 table2 ...] > backup.sql
- 从sql语句恢复
mysql -u[user] -p [database] < backup.sql
HTTP
监听端口
0.0.0.0
代表本机上的任意IP,监听0.0.0.0(:8080)
代表监听机器上的所有ip(的8080
端口)
localhost
与127.0.0.1
等价(别名),只有本机能访问,其他机器想要访问必须通过转发
Get
常见的触发Get请求的方法
- 直接输入URL(注意:仅包含域名的URL是POST请求)
- 点击超链接
node.js & npm
安装
- 直接从官网下载并安装编译好的包
-
添加软链
ln -s [上一步解压的包]/bin/npm /usr/local/bin/
ln -s [上一步解压的包]/bin/node /usr/local/bin/