如何获取Django中的URL(带有协议和域)(无请求)?

居特利

我想在cron工作中发送邮件。该邮件应包含指向我的应用程序的链接。

在cron作业中,我没有请求对象,并且无法使用request.build_absolute_uri()。

AFAIK网站框架可以在这里提供帮助。但是没有给我协议(http vs https)吗?

我的应用程序是可重用的,有时托管在http上,有时托管在https站点上。

更新

我搜索一种常见的django方式。可以创建自定义设置,但是首选使用Django标准的解决方案。

相关问题:https//code.djangoproject.com/ticket/16734

尤金·利西茨基

此任务有一个特殊的标准模块-Sites Framework它添加了站点模型,该模型描述了特定站点。该模型具有domain用于项目域的字段,以及name-网站的人类可读名称。

您将模型与站点相关联。像这样:

from django.db import models
from django.contrib.sites.models import Site

class Article(models.Model):
    headline = models.CharField(max_length=200)
    # ...
    site = models.ForeignKey(Site, on_delete=models.CASCADE)

当您需要为对象创建URL时,可以使用类似以下代码的内容:

   >>> from django.contrib.sites.models import Site
   >>> obj = MyModel.objects.get(id=3)
   >>> obj.get_absolute_url()
   '/mymodel/objects/3/'
   >>> Site.objects.get_current().domain
   'example.com'
   >>> 'https://%s%s' % (Site.objects.get_current().domain, obj.get_absolute_url())
   'https://example.com/mymodel/objects/3/'

这样,您可以在多个域之间传播内容。即使您只有一个域,我还是建议您使用它来达到一种良好的标准舒适方式来保留域设置。

安装非常简单:

  1. 添加'django.contrib.sites'到您的INSTALLED_APPS设置。

  2. 定义一个SITE_ID设置:

     SITE_ID = 1
    
  3. 运行迁移。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django REST框架。如何获取带有协议,域和路径的页面的完整URL?

来自分类Dev

如何从Django请求中获取完整的URL

来自分类Dev

发送带有UDP协议和writeDatagram的结构

来自分类Dev

Swift协议和带有类的弱引用

来自分类Dev

如何使用正则表达式从URL格式中获取计算机名称,协议和端口号?

来自分类Dev

如何使用请求模块获取带有 unicode 字符的 url?

来自分类Dev

如何在UML中可视化协议和扩展?

来自分类Dev

Chrome在相同的域,协议和端口上“尝试加载URL不安全”

来自分类Dev

如何在我的域内在 php 中重定向带有域的 url

来自分类Dev

如何在PUT请求中获取所有URL参数?

来自分类Dev

如何从Django中的请求获取所有发布数据?

来自分类Dev

从带有管道的流网络协议中获取结果

来自分类Dev

在node.js中,如何获取请求对象的协议?

来自分类Dev

如何请求带有edittext的url

来自分类Dev

如何从带有动态URL的webview中获取JSON?

来自分类Dev

如何在C#中检索URL协议请求

来自分类Dev

Angular2 http获取带有Observables和动态url参数的请求。如何?

来自分类Dev

Java正则表达式仅匹配没有协议和www的URL

来自分类Dev

在Swift属性中要求协议和类

来自分类Dev

协议和通用类型中的Swift typealias

来自分类Dev

如何从Angular $ http中删除url协议获取响应

来自分类常见问题

如何在Express.js中获取发起请求的域?

来自分类Dev

从文件中获取带有JS的URL?

来自分类Dev

如何从http或https请求中获取带有端口的主机名

来自分类Dev

如何从请求中获取json数组,并在带有GAE的python中将其用于对象?

来自分类Dev

如何显示带有索引的数组。我正在从 HTTP GET 请求中获取数组

来自分类Dev

如何从ajax响应中获取请求的URL?

来自分类Dev

如何在Swift中的不同视图控制器之间正确实现协议和委托?

来自分类Dev

如何在Flask的GET请求中传递带有参数的URL?

Related 相关文章

  1. 1

    Django REST框架。如何获取带有协议,域和路径的页面的完整URL?

  2. 2

    如何从Django请求中获取完整的URL

  3. 3

    发送带有UDP协议和writeDatagram的结构

  4. 4

    Swift协议和带有类的弱引用

  5. 5

    如何使用正则表达式从URL格式中获取计算机名称,协议和端口号?

  6. 6

    如何使用请求模块获取带有 unicode 字符的 url?

  7. 7

    如何在UML中可视化协议和扩展?

  8. 8

    Chrome在相同的域,协议和端口上“尝试加载URL不安全”

  9. 9

    如何在我的域内在 php 中重定向带有域的 url

  10. 10

    如何在PUT请求中获取所有URL参数?

  11. 11

    如何从Django中的请求获取所有发布数据?

  12. 12

    从带有管道的流网络协议中获取结果

  13. 13

    在node.js中,如何获取请求对象的协议?

  14. 14

    如何请求带有edittext的url

  15. 15

    如何从带有动态URL的webview中获取JSON?

  16. 16

    如何在C#中检索URL协议请求

  17. 17

    Angular2 http获取带有Observables和动态url参数的请求。如何?

  18. 18

    Java正则表达式仅匹配没有协议和www的URL

  19. 19

    在Swift属性中要求协议和类

  20. 20

    协议和通用类型中的Swift typealias

  21. 21

    如何从Angular $ http中删除url协议获取响应

  22. 22

    如何在Express.js中获取发起请求的域?

  23. 23

    从文件中获取带有JS的URL?

  24. 24

    如何从http或https请求中获取带有端口的主机名

  25. 25

    如何从请求中获取json数组,并在带有GAE的python中将其用于对象?

  26. 26

    如何显示带有索引的数组。我正在从 HTTP GET 请求中获取数组

  27. 27

    如何从ajax响应中获取请求的URL?

  28. 28

    如何在Swift中的不同视图控制器之间正确实现协议和委托?

  29. 29

    如何在Flask的GET请求中传递带有参数的URL?

热门标签

归档