Skip to main content
 首页 » 编程设计

python之在 Django 中删除一部分 url 地址

2024年10月25日24Leo_wl

我正在开发一个多语言网页。

网址.py

urlpatterns = patterns('', 
     url(r'^$', 'mysite.views.home', name='home'), 
     url(r'^(?P<lang>\w{2})/$', 'mysite.views.home') 
     url(r'^admin/', include(admin.site.urls)), 
) 

View .py

def home(request,lang='fa'): 
    language_mapping = {'en': 'en', 'ar': 'ar'} 
    selected_lang = language_mapping.get(lang, 'fa') 
    return render_to_response('index.html',{'lang':selected_lang}) 

在我的 html 中我有一些 <img>标签

<img src="media/image.jpg" alt=""> 

问题是如果我像 mysite.com 这样运行我的地址,我可以看到图片,但地址是这样的

mysite.com/fa/ 
mysite.com/en/ 
mysite.com/ar/ 

让我的形象消失,因为它让我的地址像mysite.com/en/media/image.jpg

那么我怎样才能删除/lang/来 self 在 <img> 中的地址标签?

也许是这样的?

url(r'^(?P<lang>\w{2})/media' = r'^/media/' ) 

我不知道在哪里做这个。

请您参考如下方法:

两件事:

  1. 您可以将 'media/img.jpg' 更改为 '/media/img.jpg'(注意前导斜杠),使其成为相对于根目录的 url——因此它总是请求 mysite.com/media/img.jpg 而不是附加 lang 标签。

  2. 您可以切换到使用 Django 的 static file management从长远来看,这可能是一个更好的主意。