当前位置:   article > 正文

Django1.10 上传图片?TEMPLATES、STATICFILES_DIRS、THUMBNAIL_PROCESSORS等相关配置_thumbnail_processors 配置

thumbnail_processors 配置

在了解如何上传图片之前,我们很有必要理解一项基本配置。

my_blog=os.path.dirname(os.path.dirname(__file__))
'''
本来想my_blog重命名为BASE_DIR,但系统报错`ImportError: No module named 'BASE_DIR'`,错误很新鲜,一直没有调过来。my_blog 也好BASE_DIR也好,不影响我们的理解。
'''
  • 1
  • 2
  • 3
  • 4

os.path.dirname() 函数是什么?相应的os.path.join(),os.path.abspath()又是什么鬼?

# os.path.abspath()返回的是文件的绝对路径
import os
def print_path(p):
    print('Settings.py路径:',os.path.abspath(p))
if __name__=='__main__':
    print('当前路径',os.getcwd())
    print_path('settings.py')
    '''
    当前路径 E:\My_Blog-master\my_blog
    Settings.py路径: E:\My_Blog-master\my_blog\settings.py
    '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
# os.path.dirname()返回文件的文件夹。
import os
def print_path(p):
    print('Settings.py路径:',os.path.dirname(__file__))
if __name__=='__main__':
    print('当前路径',os.getcwd())
    print_path('settings.py')
    '''
    当前路径 E:\My_Blog-master\my_blog
    Settings.py路径: E:/My_Blog-master/my_blog #url的形式
    '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

第二段代码也可以这么写:结果是一样一样的!

# 结果是一样的,如果忽略符号差异`\`和`/`的话
import os
def print_path(p):
    print('Settings.py路径:',os.path.dirname(os.path.abspath(p)))
if __name__=='__main__':
    print('当前路径',os.getcwd())
    print_path('settings.py')
    '''
    当前路径 E:\My_Blog-master\my_blog
    Settings.py路径: E:\My_Blog-master\my_blog
    '''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

os.path.join()的作用?(针对os.path.dirname(os.path.abspath(p))和os.path.dirname(_file_)分别给出结果)

'''
前提:os.path.dirname(os.path.abspath(p))
链接前:E:\My_Blog-master\my_blog
链接后:连接后的地址是 E:\My_Blog-master\my_blog\test
'''
def print_join_path(p):
    print('连接后的地址是',os.path.join('E:\My_Blog-master\my_blog',p))
if __name__=='__main__':
    print_join_path('test')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
'''
前提:os.path.dirname(__file__)
链接前:E:/My_Blog-master/my_blog
链接后:E:/My_Blog-master/my_blog\test
'''
def print_join_path(p):
    print('连接后的地址是',os.path.join(' E:/My_Blog-master/my_blog',p))
if __name__=='__main__':
    print_join_path('test')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

从以上链接的结果看,

my_blog=os.path.dirname(os.path.dirname(__file__))
os.path.join(my_blog, 'db.sqlite3')
  • 1
  • 2

最终的结果是:E:/My_Blog-master/my_blog\db.sqlite3。
至于这么奇怪的路径,居然还能用,就不继续深究了(把时间花在刀刃上)。

结论:adspath返回的是绝对路径,dirname返回的是url路径,也就是满足django开发需要的路径。所以,一般都用dirname(_file_)

结论:adspath返回的是绝对路径,dirname返回的是url路径,也就是满足django开发需要的路径。所以,一般都用dirname(_file_)

结论:adspath返回的是绝对路径,dirname返回的是url路径,也就是满足django开发需要的路径。所以,一般都用dirname(_file_)

一句话总结一下,url格式的路径才有用!下一篇接着这个继续写。。。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/489589
推荐阅读
相关标签
  

闽ICP备14008679号