Web开发

发布于 2021 年 06 月 22 日 | 更新于 2021 年 09 月 01 日

Django

环境配置

pip install pylint-django

Field options

null & blank

  1. null是数据库相关的,影响字段属性: Null,表单提交的时候依旧不能为空,只能sql语句设置为NULL
  2. 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)

doc

关系映射

一对多:

  1. 在“多”的model里写外键
  2. 反向查询:
    1. “一”的model里通过related_name属性来访问其关联项,related_name可在定义外键时指定,默认为[“一“的model名]_set “一”的model里会自动添加一个隐藏属性:[“一“的model名]_set,可用related_name参数指定该属性名。即related_name默认为[“一“的model名]_set
    2. 这个related_name属性是“一”的model的objects:可通过.all()来查询所有数据

关系映射的序列化规则

通过嵌套序列化,可以同时查询并返回多个关联项的数据

ref

重写model的delete()函数

下列情况会发生调用:

  1. 一个实例调用delete()方法时
  2. 在admin中删除单个数据项时

自定义动作函数

用于在admin页面批量操作多条数据

doc

Django Shell

可以在不运行完整项目的情况下,选择性地运行部分代码,一般用来测试一些函数或模型

敏感信息

settings.py默认硬编码(hardcode)了一些敏感信息:SECRET_KEY和数据库密码

为防止把项目部署到网上、上传github时泄露敏感信息,可以将hardcode改为从本地读取:环境变量或文件

SECRET_KEY

Django项目SECRET_KEY等敏感信息保存

MySQL

初次进入

sudo mysql

ref

初始用户

/etc/mysql/debian.cnf文件中有默认的用户名和密码 ref

基本操作

create database [DATABASE NAME] default charset utf8;创建数据库(utf8支持中文)

show tables;

  1. 查看当前数据库有哪些表
  2. 其中Tables_in_XXX的XXX就是当前数据库的名字

desc [table];查看表的字段信息(desc -> describe)

select * from [table]\G;格式化打印表中的所有数据行

show create table [table];显示表的创建命令

drop database [database];删除数据库

备份&恢复

  1. 备份为sql语句 mysqldump -u[user] -p [database] [table1 table2 ...] > backup.sql
  2. 从sql语句恢复 mysql -u[user] -p [database] < backup.sql

HTTP

监听端口

0.0.0.0代表本机上的任意IP,监听0.0.0.0(:8080)代表监听机器上的所有ip(的8080端口)

localhost127.0.0.1等价(别名),只有本机能访问,其他机器想要访问必须通过转发

Get

常见的触发Get请求的方法

  1. 直接输入URL(注意:仅包含域名的URL是POST请求)
  2. 点击超链接

node.js & npm

安装

  1. 直接从官网下载并安装编译好的包
  2. 添加软链

    ln -s [上一步解压的包]/bin/npm /usr/local/bin/

    ln -s [上一步解压的包]/bin/node /usr/local/bin/