代码之家  ›  专栏  ›  技术社区  ›  sutee

在同一项目中的应用程序之间传递URL

  •  1
  • sutee  · 技术社区  · 17 年前

    我试图模拟一个api,并在django中使用不同的应用来表示不同的web服务。我希望应用程序A接受与应用程序B相对应的链接并分析 json 反应。

    有没有一种方法可以动态地构造app b的url,这样我就可以在开发中测试代码,并且在投入生产之前不会有太大的变化?问题是我不能使用localhost作为链接的一部分。

    我目前正在使用urllib,但最终我想做一些不那么麻烦的事情,更好地适应web服务。 REST 范式。

    2 回复  |  直到 12 年前
        1
  •  2
  •   Pablo Fernandez    17 年前

    你可以这样做

    if settings.DEBUG:
      other = "localhost"
    else:
      other = "somehost"
    

    并使用other构建外部url。通常在调试模式下编写代码,在非调试模式下部署。settings.debug是一个“标准”的django东西。

        2
  •  1
  •   S.Lott    17 年前

    “django中的独立应用程序”是指具有公共设置的独立应用程序吗?也就是说,在同一个django站点(或项目)中有两个应用程序?

    如果是,则{%url%}标记将为设置文件中列出的任何应用生成正确的绝对url。

    如果有单独设置的django服务器,则会遇到uri设计的标准internet问题。您的uri只能与主机名更改保持一致。

    - http://localhost/some/path - development
    
    - http://123.45.67.78/some/path - someone's laptop who's running a server for testing
    
    - http://qa.mysite.com/some/path - QA
    
    - http://www.mysite.com/some/path - production
    

    您不需要提供主机信息,因此所有链接都是 <A HREF="/some/path/"> .

    一般来说,这是最好的办法。您可以让某人的随机笔记本电脑作为测试服务器;您可以使用ifconfig获取IP地址。