【问题标题】:Where does Django build its URLs?Django 在哪里构建它的 URL?
【发布时间】:2017-10-02 20:46:58
【问题描述】:

我正在玩 Django 并尝试完成 Creating and Running Your First Django Project 的教程。我的解决方案是并且将继续使用 Aprelium 的 Abyss Web Server X1Atlantis-Zero 进行自我托管。服务器已设置为运行 Django 开发服务器的反向代理 127.0.0.1:8000,服务器上的虚拟位置为 DjangoHelloWorld

当尝试访问admin 应用程序并查看页面源时,出现如下代码:

<!DOCTYPE html>

<html lang="en-us" >
<head>
<title>Log in | Django site admin</title>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/login.css" />




<meta name="robots" content="NONE,NOARCHIVE" />
</head>
...

在 Django 中全局生成的 URL 在哪里?我需要修改它们的创建方式,以便/DjangoHelloWorld/ 成为预期资源路径的一部分,或者我需要更改一些设置,以便开发服务器意识到它不在网站的根目录。

【问题讨论】:

    标签: python html django python-3.x


    【解决方案1】:

    转到您的项目文件夹,其中有 wsgi.py 和 settings.py;那里有一个 urls.py 文件,在该文件中,您会找到管理员 urlpattern,您可以将名称自定义为您喜欢的任何名称。此外,要访问管理页面,您必须运行 python manage.py createsuperuser 以获得员工帐户

    【讨论】:

      【解决方案2】:

      您可能会发现以下论坛交流会有所帮助:

      DJANGO framework under FastCGI on ABYSS

      它说 Abyss 支持 URL 重写,这可能有助于使您的链接正确。


      现在要按照建议实际配置 Django 和 Abyss,这个线程可能更有用:

      Django (Python) with FastCGI

      它提供了 Django 网站 wiki 上教程的链接。


      如果你想直接查看教程,你会想去这里:

      Django on Windows with Abyss (FastCGI)

      可以在下面找到本教程的副本。


      带有 Abyss (FastCGI) 的 Windows 上的 Django

      背景

      在 Windows 中使用 Django 进行开发并想要一个更像生产的环境?这是我现在正在使用的一个解决方案,看起来非常好且轻巧。

      先决条件:

      这假设您已经准备好您的 Python 和 Django 环境并且可以正常工作,并为 FastCGI 做好了准备,详见此处:http://www.djangoproject.com/documentation/fastcgi/http://www.aprelium.com/abyssws/ 下载并安装 2.5 或更高版本的 Abyss web 服务器(个人免费使用) )。

      下面的文字是从 Rails 配置细节中借用和修改的:http://www.aprelium.com/abyssws/ror.html

      这里假设您在 C:\django 下有一个 my-site 项目,并希望从 C:\django\public_html 提供您的其他内容。

      这是使用 Python 2.5 和 Django 开发版本(SVN 主干)测试的。

      配置:

      以 FastCGI 模式启动 Django

      C:\> cd django\mysite
      C:\django\mysite> python manage.py runfcgi method=threaded host=127.0.0.1 port=3033
      
      • 在 public_html 中创建一个名为 dispatch.fcgi 的空文件。这似乎是深渊的 URLRewrite 启动所必需的。(不过可能还有其他更漂亮的解决方案。)

      运行 Abyss Web Server 并打开其控制台

      • 选择将为 Django 应用程序提供服务的主机:

        • 如果您有 Abyss Web Server X2,您可以为此创建一个新的。
        • 如果您拥有 Abyss Web Server X1,则必须使用唯一可用的主机。
      • 按与您选择的主机关联的配置按钮(在主机表中)。

      • 选择常规。

        • 在文档路径字段中输入:C:\django\public_html

          这不是路径 - 这里的正确文字是什么?

        • 按确定。

      • 选择脚本参数并在脚本参数表中按添加。

        • 将接口设置为 FastCGI(远程 - TCP/IP 套接字)。
        • 在远程服务器 IP 地址中输入 127.0.0.1 并将端口字段设置为 3033。
        • 确保类型为标准。
        • 在 Extensions 表中按 Add,在 Extension 字段中输入 fcgi,按 OK,然后再次按 OK。
      • 选择 URL 重写,在 URL 重写规则表中按添加。
        • 在虚拟路径正则表达式字段中输入:^(.*)$
        • 在条件表中按添加。
        • 将变量设置为 REQUEST_FILENAME,将运算符设置为不是文件,然后按确定。
        • 在条件表中再按一次添加。
        • 将变量设置为 REQUEST_FILENAME,将运算符设置为不是目录,然后按确定。
        • 设置如果此规则匹配执行内部重定向。
        • 将重定向设置为:/dispatch.fcgi?$1
        • 按确定。

      应用修改

      • 按重新启动以重新启动服务器。

      测试应用程序并享受。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-17
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 2011-08-22
        相关资源
        最近更新 更多