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

  • AginoEvolutionHD

    AginoEvoluti

    27 AĞUSTOS 2011
  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010