减少文件夹

创建django项目的时候,是在一个叫website的文件夹里创建的,再创建一个叫website的项目,那么,就有website/website/website

第二个website文件夹其实没必要,在创建的时候这么写

1
django-admin startproject website .  

在后面多加一个点,第二个文件夹就消失了

第三个website里面是全局配置,可以将名字改为config,这样简洁多了

1
2
3
4
>WEBSITE
>config
>venv
manage.py

不过,重命名为config后,setting.py和wsgi.py和asgi.py和manage.py里的website需要都改成config,改了5个地方
那么为什么一开始不直接写

1
django-admin startproject config .

下载pymql

配置数据库之前pip install pymsql 下挺快的,不用镜像
然后在__init__.py里配置一下

1
2
import pymysql
pymysql.install_as_MySQLdb()

启动mysql

记得在服务里启动mysql(如果设置了手动开启),忘了好几次

meta

db_table: 在数据库中的表名,如果不设置将使用app名_模型类名的格式。
verbose_nameverbose_name_plural: 模型的单数和复数名称,用于显示在Admin站点等。
ordering: 对查询结果排序的默认字段,负号表示降序。

要更改数据库的表名,就在meta里加一个db_table

1
2
3
4
5
6
7
8
9
10
class User(BaseModel):
id = models.AutoField(primary_key=True)
username = models.CharField('用户名', max_length=30,null=True,blank=True,unique=True)
password = models.CharField('密码',max_length=30)
email = models.EmailField('邮箱', null=True,blank=True, unique=True)

class Meta:
db_table = 'user'
verbose_name = '用户信息'
verbose_name_plural = '用户信息'

加完后要重新做一下数据迁移

1
makemigrations migrate

避免 HTML 标签被转义

在html中添加 safe 过滤器,可以正常显示富文本内容,避免 HTML 标签被转义
防止在页面显示一大堆html标签

加个|safe

1
<p>{{ news.content|safe}}</p>