【问题标题】:Runtime Error - web.config运行时错误 - web.config
【发布时间】:2018-03-29 05:24:24
【问题描述】:

我使用flask创建了一个网站,它接收一个字符串,根据字符串创建一个url,解析url,然后将其反馈回网站。我为此创建了一个函数,它运行良好。然而,当我在我的烧瓶程序中实现它时,它开始抛出一个运行时错误,指出:

服务器上出现应用程序错误。此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息(出于安全原因)。但是,它可以被本地服务器机器上运行的浏览器查看。 详细信息:要在远程机器上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录的“web.config”配置文件中创建一个 customErrors 标记。然后,此 customErrors 标记应将其“mode”属性设置为“Off”。

我不熟悉创建 web.config 或如何在我的烧瓶程序中实现它。任何帮助,将不胜感激。

代码:

单独运行时起作用的功能:

def parse_wotc():
    set_list = []
    # Manually enter in value for test
    card_url = 'http://gatherer.wizards.com/Pages/Card/Details.aspx?name=' + 
                'mountain' # (replace mountain) card_name.replace(' ', '+')
    soup = BeautifulSoup(requests.get(card_url).text, 'html.parser')

    for image in soup.find_all('img'):
        if image.get('title') is not None:
            set_list.append(image.get('title'))
    print(set_list)
    return set_list

webapp 代码:

@app.route('/', methods=['GET', 'POST'])
def index():
    card_name = None
    card_url = '/static/images/card_back.jpg'

    if request.form.get('random_button'):
        card_url, card_name = random_card_image(list_card_names)
        # When function ran here it give the error
        parse_wotc(card_name)

def random_card_image(list_card_names):
    """This function will pull a random card name from the provided list and 
    return to main program"""
    card_name = random.choice(list_card_names)
    card_url = 'http://gatherer.wizards.com/Handlers/Image.ashx?name=' + 
                card_name.replace(' ', '+').lower() + \
                '&type=card'
    return card_url, card_name

【问题讨论】:

  • 如果您需要帮助,您需要向我们展示代码!
  • @Daniel - 先生,你来了(编辑后的帖子)。感谢您的宝贵时间。
  • 我了解到您不是在本地开发此应用程序?
  • 截至目前,它在 127.0.0.1:5000 本地运行
  • 好的,所以我仍在进行故障排除,但问题似乎在于 random_card_image() 如何将数据发送到 parse_wotc()。我在应用程序中添加了一个文本字段,以便我可以手动输入名称,并且每次通过网站都能完美运行。

标签: python flask web-config


【解决方案1】:

花了几个小时才确定问题出在哪里,但现在可以解决了。问题是我制作了一个文本文件,其中包含我从中提取的卡片名称列表以创建随机选择 - 但是文本文件在每个条目上都包含一个尾随 \n。因此,它正在创建一个其中包含 \n 的 url,这在当时并不明显并导致错误。我在创建名称列表时使用了 rsplit() 来删除尾随的 \n,现在它可以完美地工作了。

【讨论】:

  • 最愚蠢的错误是那些需要更长时间才能找到的错误。很高兴你解决了。
  • 感谢您的关注。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 2013-12-04
  • 1970-01-01
相关资源
最近更新 更多