码迷,mamicode.com
首页 > 其他好文 > 详细

django 开发之模型以及静态问题和图片的使用

时间:2018-11-25 11:45:30      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:pytho   init   media   写法   官方   文件夹   upload   模型   警告   

使用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 开发之模型以及静态问题和图片的使用

标签:pytho   init   media   写法   官方   文件夹   upload   模型   警告   

原文地址:https://www.cnblogs.com/freewsf/p/10010264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!