2019-06-13【今日小知识记录】

Python publisher01 20℃

models

1、 ImageField字段中的upload_to是给Django默认的上传文件系统用的,默认上传到Django中settings.py 中配置的MEDIA_ROOT的路径中,但是在生鲜中我们用的fastdfs,所以这里随便写,不会用

image = models.ImageField(upload_to='goods', verbose_name='商品图片')

2、模型中class meta下面的verbose_name是表名的别名,verbose_name_plural是表名的别名的复数,一般是加s,将模型注册到admin中后,在admin中的表中就可以看见表的别名

Django

1、如果Django中app比较多,那么一般会新建一个 python packages(一般命名为apps),将app全部移动到这个目录下,一些路径也需要做更改,为了方便,直接在settings.py下加入以下语句

import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

2、在加载静态文件的时候,如果是外部加入进来,发现一直加载不进去,可能是settings.py中没有配置STATICFILES_DIRS,配置好了就正常显示了

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

Django中的auth模块中user表

3、在使用内置的auth的模块user表的create_user的时候,当插入数据时,默认is_active为1,表示已经激活了,此时需要修改为未激活

    user = User.objects.create_user(username, email, password)
    user.is_active = 0
    user.save()

4、在使用auth自带的user数据中的数据插入的时候,注意数据值插入顺序,password在email之前,否则数据保存会错行,(刚刚就有这个bug)

5、 auth中的user表默认会将password给加密,如果你不用user表,那你需要自己将密码加密

6、auth中的user表会默认保持username值唯一,所以在使用user表的时候注意检查一下username是否唯一

7、 对表模型进行查找的时候,如果条件值不在表中,会报错DoesNotExist的错误

    # 校验用户名是否重复
    try:
        user= User.objects.get(username=username)
    except User.DoesNotExist:
        # 用户名不存在
        user = None

MySQL

1、如果数据表中的列数比较多,显示的不太好看,在sql语句后用 \G 转换为竖着显示


mysql.jpg

转载请注明:Python量化投资 » 2019-06-13【今日小知识记录】

喜欢 (0)or分享 (0)