django 开发之模型以及静态问题和图片的使用
Posted freewsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 开发之模型以及静态问题和图片的使用相关的知识,希望对你有一定的参考价值。
使用Django的模型,基本步骤:
1.创建model
2.加入到admin.py中去
3.执行生成迁移:python manage.py makemigrations blog
4.执行迁移,生成表单
需要注意的是第二步,一定要加入APP相应的adimn.py 上去,再执行迁移,否则不会启用该model
adminModel的定制:
从工程的角度来讲,结合以前的.NET Core的项目过程,我喜欢做成各个功能模块在文块夹组织上的分离,类似下同的工程结构:
这里记录两个东西:
1. media_root media_url 与 static_url static
查询官方的文档上面是说,这两个目录是不能配置成一样的。
MEDIA_ROOT 按照很多人的理解是指上传的imagefileld与filefield这种动态的上传文件的目录,亲测之后,还是算比较正确的理解的 需要注意的是:imagefield的upload_up 是可以自定义的
STATIC_ROOT 是用来存放类似于CSS,JS这种静态文件的
上一个类似的配置
配置后,在前端的使用方式是这样的:
需要这两个地方的路径的写法,以及存储时的时候路径,一般的,我们的路径字段,一般都是只需要存储文件名
要使存储的图片正确在template上面显示出来,这几个地方都要配置,在测试的时候,可以直接访问:
http://127.0.0.1:8000/img/xxx.jpg --->通过media_url的配置信息,其实是访问服务器上面的路径: /static/upload/xxx.jpg 只要明白这个道理,相信就会正确使用这个配置
补充说明一下,在上面的项目分层的过程中:
对于__all__的一些理解:
1.在模块(*.py)中使用__all__ 意为:导出__all__列表里的类、函数、变量等成员,
否则将导出modual中所有不以下划线开头(私有)的成员,
2.在包(一个包含__init__.py的文件夹)的__init__.py中__all__意为导出包里的模块
如果我们在models的模块中__init__.py 的__all__ 中把blogpost去掉,就会出现这个警告,这相当于模块间的引用,这样就能理解了。
以上是关于django 开发之模型以及静态问题和图片的使用的主要内容,如果未能解决你的问题,请参考以下文章