【问题标题】:Django Absolute urlDjango 绝对网址
【发布时间】:2019-06-25 21:15:58
【问题描述】:

所以我是 django 的新手,我一直在研究 PHP CodeIgniter,在其中将绝对 URL 放入 href 我通过调用 URL helper 使用了一个名为 base_url 的函数

<?php echo base_url().'user/login';?>


它给出的输出类似于
http://localhost/projectname/user/login
我想在 Django 中做同样的事情,但没有任何我能理解的答案或答案。我不想使用相对 URL,我的预期结果应该是这样的

{% url 'login' %}


上面的代码应该返回
http://localhost/projectname/user/login

【问题讨论】:

标签: python django codeigniter url


【解决方案1】:

您可以在 django 中通过 2 种方式获取绝对 url。

一个是通过使用构建您的自定义模板标签 HttpRequest.build_absolute_uri() 来自 HttpRequest 的方法

或者简单地在你的 django 模板中使用以下行。

<a href="{{ request.get_host }}{% url your_url_name %}">Link</a>

查看此链接了解详情: https://docs.djangoproject.com/en/2.1/ref/request-response/#django.http.HttpRequest.get_host

【讨论】:

【解决方案2】:

如果您在 urls.py 文件中有这样定义的 URL 路径:

path('user/', views.user, name='user_list')

然后你可以像这样在模板中调用这个 URL:

<a href="{% url 'user_list' %}">Users</a>

详情请查看https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#url

对于绝对 URL,您可以使用:

<a href="{{ request.get_host }}{% url 'user_list' %}">Users</a>

【讨论】:

  • 我想在渲染html时显示绝对url,但上面的代码只显示相对url
  • 这种情况下可以使用&lt;a href="{{ request.get_host }}{% url 'user_list' %}"&gt;Users&lt;/a&gt;
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 2010-10-28
  • 2011-06-30
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多