使用 Mac 在服务器上运行 Python

2023-12-09

我正在尝试在这个地址运行我的 python 文件:http://usersignup.drawyourpets.com/。正如您所看到的,它显示了文件夹中的文件,但并未实际运行它们(EDIT:现在它只返回 500 错误)。当我使用 Google App Engine 在本地运行文件时,它看起来像这样:

enter image description here

这是对的。这就是我的文件在 FTP (Filezilla) 中的样子:

enter image description here

所以我知道它们位于正确的文件夹中。

这一直适用于 HTML 文件,我需要做什么才能让 python 在浏览器中运行?我需要将某行代码添加到我的 main.py 文件中吗?我注意到这篇文章:

Mac Web 服务器上的 Python

但它并没有真正指定在哪里添加这行代码:AddHandler cgi-script .cgi .py(如果这就是我需要做的)。

另外,我使用 HostGator 进行托管,它支持 python,所以我知道这不是问题。

感谢您的帮助!

EDIT:这是我尝试运行的 python 文件,main.py:

#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.

# See the License for the specific language governing permissions and
# limitations under the License.
#

import webapp2
import cgi

def Build_Page(textarea_content):

form = """
<table>
    <tr>
    <td>
    <label>{0}</label>
    </td>
    <td>
    <label>Username: <input type="text" name="username"/></label>
    </td></tr>

    <tr>
    <td>
    <label>{1}</label>
    </td>
    <td>
    <label>Password: <input type="text" name="password"/></label>
    </td></tr>

    <tr>
    <td> 
    <label>{2}</label>
    </td>
    <td>
    <label>Verify Password: <input type="text" name="verify_password"/>
    </label>
    </td></tr>

    <tr>
    <td>
    <label>{3}</label>
    </td>
    <td>
    <label>Email (optional): <input type="text" name="email"/></label>
    </td></tr>

    </table>
    """
submit = "<input type = 'submit'/>"
form2 = ("<form method='post'>" + form + submit + "
</form>").format("Please enter a username",
"Please enter a password", "Passwords must match","Please enter a valid
email")

header = "<h1>User Signup</h1>" 

return header + form2

class MainHandler(webapp2.RequestHandler):
    def get(self):
        content = Build_Page("")
        self.response.write(content)

    def post(self):
    # look inside the request to figure out what the user typed
        username = self.request.get("username")
        password = self.request.get("password")
        verify_password = self.request.get("verify_password")
        email = self.request.get("email")
    # if the user typed nothing at all, redirect
        if (not username) or (username.strip() == ""):
            error = "Please enter a username."
            self.response.write(error)
            self.redirect("/?error=" + cgi.escape(error, quote=True))

        if (not password) or (username.strip() == ""):
            error = "Please enter a username."
            self.response.write(error)
            self.redirect("/?error=" + cgi.escape(error, quote=True))

        """if (not username) or (username.strip() == ""):
            error = "Please enter a username."
            self.response.write(error)
            self.redirect("/?error=" + cgi.escape(error, quote=True))

        if (not username) or (username.strip() == ""):
            error = "Please enter a username."
            self.response.write(error)
            self.redirect("/?error=" + cgi.escape(error,
            quote=True))"""

        #self.write.form2    
        #message = self.request.get("message") # hello</textarea>hello
        #rotation = int(self.request.get("rotation")) # 0 
        #encrypted_message = caesar.encrypt(message, rotation) 
        #hello</textarea>hello
        #escaped_message = cgi.escape(encrypted_message) 
        # hello&lt;/textarea&gt;hello
        #content = build_page(escaped_message)
        #self.response.write(content)

        #original_form = form.format("","","","","","")
        #page footer

        #class TestHandler(webapp2.RequestHandler):
        #    """ Handles requests coming in to '/add'
        #        e.g. www.user-signup.com/add
        #    """
        #    def get(self):

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    #('/', TestHandler)
], debug=True)

显然,根据 hostgator 的说法,您必须将这些代码行添加到 .htaccess 文件的顶部:

Addhandler cgi-script .py .pl .cgi
DirectoryIndex main.py 

但这还不足以让这个 python 文件在 HostGator 网站上运行,因为 HostGator 不支持 webapp2,而 webapp2 在该文件中多次使用。现在我想弄清楚我可以用什么来代替 webapp2 (参见新问题).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Mac 在服务器上运行 Python 的相关文章

  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Geopandas 设置几何图形:MultiPolygon“等于 len 键和值”的 ValueError

    我有 2 个带有几何列的地理数据框 我将一些几何图形从 1 个复制到另一个 这对于多边形效果很好 但对于任何 有效 多多边形都会返回 ValueError 请指教如何解决这个问题 我不知道是否 如何 为什么应该更改 MultiPolygon
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 在 Mac 操作系统上使用 ffmpeg 录制视频

    我想在 mac OS 上使用 ffmpeg 以任何格式录制实时网络摄像头视频 我尝试了很多 但无法找到用于重新编码视频的命令 所以请任何人都可以告诉我 ffmpeg 命令用于使用 Mac 操作系统的网络摄像头捕获视频 提前致谢 对于 Mac
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 如何从没有结尾的管道中读取 python 中的 stdin

    当管道来自 打开 时 不知道正确的名称 我无法从 python 中的标准输入或管道读取数据 文件 我有作为例子管道测试 py import sys import time k 0 try for line in sys stdin k k
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • ERROR:Xst:827 = 信号计数无法合成,同步描述错误

    我正在尝试模拟电梯 结果出现错误 ERROR Xst 827 Signal count cannot be synthesized bad synchronous description 我正在关注此来源的代码 https www yout
  • Wildfly 8 Final 上的 JSF 1.2 -weld-core-jsf 仍然引用 JSF 2.2 API

    我目前正在将 JSF 1 2 应用程序迁移到 Wildfly 8 Final 但遇到了困难 首先 我读过很多有关相关问题的帖子 例如https community jboss org message 845006 or 将 JSF 1 2
  • 计算ng重复Angularjs中的值的总和

    我是 Angularjs 的新手 我正在使用 ng repeat 显示项目列表 如何计算它的总和 有没有简单的方法可以使用表达式在html中计算它 name numberofyears amount interest xxx 2 4000
  • int8_t 和 uint8_t 是 char 类型吗?

    给定这个 C 11 程序 我应该看到数字还是字母 还是不抱期望 include
  • Selenium 找不到类型为 number 的字段

    我在让 Cucumber 使用 HTML5 查找字段时遇到问题type number 我不太喜欢它们在浏览器中的显示方式 但我有一些字段需要移动设备上的数字键盘 这似乎是最简单的获取方式 我正在使用 SimpleForm 来构建表单 当我设
  • 设置Android系统音量

    我正在编写一个处理以下内容的应用程序 静音 使手机音量静音 低 使手机音量比静音时高 1 个百分点 中 使手机音量中等 高 将手机音量调至最大 电话音量包括铃声 视频 音频 游戏音量等 我知道如何通过以下方式实现静音模式AudioManag
  • numpy.all 轴参数行为不当?

    我有一个以下数组 a np array 0 5 0 5 0 9 0 9 gt gt gt a shape Out 72 2 4 gt gt gt np all a axis 0 Out 69 array False True False T
  • 将多列中的值乘以一列中的值

    我有以下数据 ID lt c CB1 CB2 CB3 size lt c 10 40 4 Year 1 lt c 10 6 15 Year 2 lt c 12 7 20 Year 3 lt c 14 8 25 data lt data fr
  • 使用 Core Motion 从加速度计数据获取位移

    我正在开发一个增强现实应用程序 目前 想要在表面上显示一个简单的立方体 并且能够在空间中移动 旋转和位移 以从所有不同的角度查看立方体 校准相机的问题在这里不适用 因为我要求用户将 iPhone 放置在他想要放置立方体的表面上 然后按下按钮
  • SIGKILL 信号处理程序

    我需要在收到任何终止命令 如 SIGTERM 和 SIGKILL 时写入日志文件 我可以注册 SIGTERM 但如何处理 SIGKILL 信号 你不能 至少不能杀死进程 你什么can要做的就是安排父进程监视子进程的死亡 并采取相应的行动 任
  • Firebase 绑定未反映在角度视图中

    我从 Firebase 中的每个对象 picUrl 图片的 url 中提取一个值 并将其存储在作用域数组变量 scope bricks 中 如何使 scope bricks 每次使用新对象更新 Firebase 时更新 从而更新新的 pic
  • 透视 mysql 结果集并创建 html 表/矩阵

    我整晚都把头撞在墙上 但还没有解决方案 假设我有这样的 Mysql 表结构 ID name value year 1 Tom 15 2018 2 Tom 4 2019 3 Tom 6 2020 4 Kate 18 2018 5 Kate 2
  • 在 Ruby 1.9.2 中使用 SOAP 和其他标准库

    因此 我最近升级到 1 9 2 Ruby 一直使用 1 8 7 我想尝试一下 Rails 3 我遇到的最大问题是我的 SOAP require 语句都不起作用 我有这样的问题 require soap rpc driver require
  • 更新 pandas groupby().last() 的列值

    给定数据框 dfd pd DataFrame A 1 1 2 2 3 3 B 4 5 6 7 8 9 C a b c c d e 我可以使用以下方法找到每个 A 组的最后一个 C 值 dfd groupby A last C 但是 我想将
  • 复制初始化和直接初始化的混淆

    考虑简单的陈述 摘自在 C 中 复制初始化和直接初始化之间有区别吗 A c2 A 该语句对临时值进行值初始化 然后复制该值 值写入 c2 阅读 5 2 3 2 和 8 5 14 这当然需要一个 非显式复制构造函数 阅读 8 5 14 和 1
  • 协议和委托之间的区别?

    和有什么区别protocol and a delegate and 我们如何声明variables in a protocol class 一个协议 用 protocolObjective C 中的语法 用于声明类 采用 声明它将使用此协议
  • 如何在调试模式下刷新 fmt 输出?

    我正在尝试fmt我确实从下面的代码中得到了输出 include
  • 通过选择部分或全部字符生成所有排列的算法

    我需要通过选择一些元素来生成字符串的所有排列 就像如果我的字符串是 abc 输出将是 a b c ab ba ac ca bc cb abc acb bac bca cab cba 我想到了一个基本算法 其中我生成 abc 的所有可能组合
  • Typescript 不会复制 d.ts 文件来构建

    所以也许我很困惑 但我想如果我添加declaration true到我的 tsconfig json 我可以让它 tsc 复制我的 d ts文件 以及转译的代码和它的d ts files EG src lib types d ts foo
  • 使用 Mac 在服务器上运行 Python

    我正在尝试在这个地址运行我的 python 文件 http usersignup drawyourpets com 正如您所看到的 它显示了文件夹中的文件 但并未实际运行它们 EDIT 现在它只返回 500 错误 当我使用 Google A