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

  • emimusic

    emimusic

    10 Mart 2006
  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008