SORU
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.

  1. 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.
  2. 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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Video-Tutorials.Net

    Video-Tutori

    15 Mart 2011