Ris*_*ise 1 python django django-views
我试图__file__在django下使用python 变量检索文件路径,虽然我得到了正确的路径.这种行为有点奇怪.这是我附上的示例代码,请让我知道为什么这样做.
from django.shortcuts import render_to_response
import datetime
class WebServer():
def __init__(self):
pass
def display_first_page(self, request):
print "File Path: ", __file__
return render_to_response('Hello')
Run Code Online (Sandbox Code Playgroud)
我已将此代码存储在给定位置:C:\ Django_example\MySample.理想情况下它应该返回类似C:\ Django_example\MySample\webserver.py的内容,但我得到的是C:\ Django_example\MySample\..\MySample\webserver.py.有人可以指出我正确的方向.
提前谢谢,
Rupesh
据我所知,C:\Django_example\MySample\webserver.py并C:\Django_example\MySample\..\MySample\webserver.py指向同一个文件,所以它不是错误的.
如果您想要更简洁的路径表示,请尝试:
import os
print "File Path: ", os.path.realpath(__file__)
Run Code Online (Sandbox Code Playgroud)
__file__)我可以重现该行为的唯一方法是更新sys.path.例:
[me@home]$ cd /project/django/xyz
[me@home]$ ./manage.py shell
(InteractiveConsole)
>>> from app import models as M
>>> M.__file__
'/project/django/xyz/app/models.pyc'
>>> import sys
>>> sys.path.append('../')
>>> from xyz.app import models as N
>>> N.__file__
'/project/django/xyz/../xyz/app/models.pyc'
Run Code Online (Sandbox Code Playgroud)
由于绝对路径是通过将相对路径附加到基本路径而形成的,因此我怀疑您/../的python路径中可能存在某个位置.
sys.path从您的视图打印时,您会得到什么?