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

  • ASUS North America

    ASUS North A

    12 AĞUSTOS 2008
  • placeboing

    placeboing

    7 Mart 2006
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007