24 Mart 2012, CUMARTESİ
Kullanan Python'in os.yol, nasıl bir dizini Yukarı gideceğim?
Geçenlerde Django v1 yükseltme.3.V1, 1.4.
settings.py
ben eski ben
TEMPLATE_DIRS = (
os.path.join(os.path.dirname( __file__ ), 'templates').replace('\\', '/'),
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
Bu /Users/hobbes3/Sites/mysite/templates
işaret edecektir ama because Django v1.4 moved the project folder to the same level as the app folders, settings.py
dosyamı şimdi /Users/hobbes3/Sites/mysite/
yerine /Users/hobbes3/Sites/mysite/mysite/
.
Aslında benim sorum şimdi ikiye ayırıyoruz.
- Nasıl
os.path
__file__
Bir dizinde bir seviye yukarıda bakmak için kullanırım. Diğer bir deyişle,/Users/hobbes3/Sites/mysite/mysite/settings.py
/Users/hobbes3/Sites/mysite/templates
göreli yolları kullanarak bulmak istiyorum. template
klasör çapraz uygulama şablonları,admin
,registration
, vb. gibi) tutmak gerekir proje/User/hobbes3/Sites/mysite
seviye veya/User/hobbes3/Sites/mysite/mysite
?
CEVAP
24 Mart 2012, CUMARTESİ
os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'templates'))
Şablonlar klasörü nereye kadar, Django 1.4 sadece çıktığından beri bilmiyorum ve henüz bakmadım. Muhtemelen SE başka bir soru bu sorunu çözmek için yeterlidir.
Ayrıca normpath
yolu abspath
yerine temizlemek için kullanabilirsiniz. Ancak, bu durumda, Django göreli bir yol yerine mutlak bir yol bekliyor.
Çapraz platform uyumluluğu için, '..'
yerine os.pardir
kullanın.
Bunu Paylaş:
Nasıl Python ev dizini olsun?...
Nasıl'Python dizini mevcut dosyan...
Nasıl yeni bir dil özelliklerini kulla...
Nasıl Python ile geçerli çalışma dizin...
Nasıl OS X Terminal ile bir dizini yuk...