【问题标题】:Execution of python script on webserver via link通过链接在网络服务器上执行 python 脚本
【发布时间】:2014-11-28 09:03:45
【问题描述】:

我终于设法让我的网络服务器启动并运行 python。 我现在可以输入指向 python 脚本的直接 url,它正在被执行。

我编写了一个脚本,它生成了一个 html 页面并返回它——工作;如果字符串保存为 html 并打开,它会完全按照我想要的方式显示。 但是,如果用户导航到导航菜单中显示的“数据库”链接,我希望显示此页面

        <nav>
            <ul class="main-nav">
                **<li><a href="#">Database</a></li>**
                <li><a href="#">About</a></li>
                <li><a href="admin.html">Admin</a></li>
            </ul>
        </nav>

我希望在用户单击菜单链接时执行脚本,但我不希望用户看到指向 python 脚本的实际链接。 即链接应该显示 localhost/database.html 但是应该执行脚本并且应该显示返回的任何内容。

我希望这是有道理的 - 感谢任何帮助

【问题讨论】:

  • 您意识到您可以设置网络服务器以使用文件夹中的默认文件,因此您可以将其移动到名为 database 的文件夹中,而不是指向 localhost/database.html 的链接扩展名,即本地主机/数据库,您可以将脚本文件放在那里,让服务器执行它,但 URL 永远不会告诉用户它是什么类型的文件。您使用的是哪种网络服务器?
  • @JamesKent 嗨詹姆斯,感谢您的及时回复。我正在使用 Apache 2 网络服务器。这听起来像是一种可能性,但这意味着如果我将页面移动到其他地方,我必须确保将网络服务器设置为使用默认文件!理想情况下,如果可能的话,我希望所有这些都发生在 html 方面。不过,您是否知道在哪里/如何设置它?它只是 httpt.cof (或其他名称)中的“另一个”设置吗?谢谢
  • 不幸的是,我没有使用 apache 的经验,我只看过微软的 IIS 和 python 中的内置服务器,但是这个链接似乎在第二个答案中做你想要的: stackoverflow.com/questions/6874480/…
  • 刚刚写了这个作为答案

标签: python html forms webserver


【解决方案1】:

实现您想要的最简单的方法(最终用户看不到它不是 HTML 文件)是将文件移动到文件夹中并配置服务器以在用户导航到时执行并服务器该文件的结果该文件夹,即将文件移动到名为:

的文件夹中
/database  

然后将您的链接更改为指向那里,然后将网络服务器配置为接受 python 文件名作为默认文件,在您运行 apache 的情况下,它应该是这样的:

在您的 Apache 配置文件 (httpd.conf) 中找到 DirectoryIndex 指令,或者将其添加到 .htaccess 文件中,如果您想将默认索引文件限制为仅 index.html,请将其更改为如下所示:

DirectoryIndex index.html

您还可以包含更多资源,它们将按照给定的顺序使用,例如

DirectoryIndex index.html index.php

如果 index.html 和 index.php 都存在,将首先显示 index.html 文件。

如果您对 httpd.conf 文件进行了更改,请不要忘记重新启动 Apache。

这样你在本地测试时看到的 url 将是:

localhost/database

并避免在其上添加任何扩展名,这比尝试进行某种重定向更简单。

就个人而言,当使用执行查询等操作的页面时,我倾向于称它们为process,以表明它们在我处理它时实际上做了某事,而我倾向于调用索引的静态文件(除非有多个该位置的文件)这不是必需的,只是我的个人喜好,但它有助于保持配置简单,因为您只需将这么多名称添加到默认列表中。

【讨论】:

    猜你喜欢
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多