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

来源:互联网 发布:profili软件介绍 编辑:程序博客网 时间:2024/06/06 01:16

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

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

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

# os.path.abspath()返回的是文件的绝对路径import osdef 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    '''
# os.path.dirname()返回文件的文件夹。import osdef 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的形式    '''

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

# 结果是一样的,如果忽略符号差异`\`和`/`的话import osdef 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    '''

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')
'''前提: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')

从以上链接的结果看,

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

最终的结果是: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格式的路径才有用!下一篇接着这个继续写。。。

阅读全文
0 0
原创粉丝点击