python - 从本地主机移植我的烧瓶应用程序时无法弄清楚它有什么问题
问题描述
概述
嗨,我有一个 Flask 应用程序,可以在我的本地主机上运行,但不能在 pythonanywhere 上运行。我的应用程序基本上执行以下操作:
- 用户填写 HTML 表单,点击提交
- HTML 形式的脚本使用 jQuery $ajax 在 sumbit 上发布到我的烧瓶应用程序
- Flask 应用程序处理数据并将其发送回以显示为 HTML
以下是我认为将我的应用程序移动到 pythonanywhere 时可能出现的一些问题:
- urllib.requests 可能不包含在 pythonanaywhere 中,我知道包含 urllib 但我不确定 urllib.requests 是否不同或只是 urllib 的一部分
- 在我的本地主机上,我的 $ajax 网址是“http://127.0.0.1:5000/ebaycode/”,经过数小时的查找,我找不到任何关于您应该将其更改为的信息,所以我尝试了“http:// mander39.pythonanywhere.com/ebaycode/' 这可能是错误的
- 我不知道@app.route 做了什么,也许这在移动到 pythonanywhere 时搞砸了
代码
<script>
$('#form').on('submit', function(e){
#random css changes with jQuery i.e. $('.box').css( "display","none")
#conditionals based on form data i.e. if ($('.checkbox').is(":checked"))
e.preventDefault();
$.ajax({
url: 'http://mander39.pythonanywhere.com/ebaycode/',
data: {'product': product, 'sold': sold, 'cond': cond},
method: 'POST',
success: function(data) {
#using $('#id').html to show my data output on my site
}
});
});
</script>
烧瓶应用
from flask import Flask, render_template, request, jsonify
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
from statistics import mean
import numpy as np
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/ebaycode/', methods=['POST'])
def ebaycode():
prod = str(request.form.get('product', 0))
sold = str(request.form.get('sold', 0))
cond = str(request.form.get('cond', 0))
#whole bunch of other code
data = {'ebaycode': ebaycode,'lengthOne': lengthOne,'maxOne': maxOne,
'minOne': minOne,'avgOne': avgOne,'medOne': medOne, 'lengthTwo': lengthTwo,
'maxTwo':maxTwo, 'minTwo':minTwo,'avgTwo': avgTwo,'medTwo': medTwo, 'url': tac
}
data = jsonify(data)
return data
def reject_outliers(data, m = 3.):
#method called in ebaycode()
if __name__ == '__main__':
app.run(debug=True)
我希望我有一个命令提示符来显示我的应用程序正在做什么,但是来自 pythonanywhere 的 bash 和 python cmd 不显示任何内容。非常感谢您的帮助,我真的需要它。
解决方案
推荐阅读
- acumatica - 恢复客户端数据库后无法编辑/打开自定义项
- c# - 使用 System.Runtime.Serialization.Json.DataContractJsonSerializer 反序列化具有接口属性类型的对象的最佳方法是什么?
- elassandra - 在 windows10 上运行 elassandra 发行版(不在 docker 上) ElasticSearch localhost:9200 无法访问
- javascript - 在 Vue.js 中,如何通过 vanilla js 更改 DOM 后恢复数据绑定?
- angular - 数组更改后视图不更新
- android - “组织管理员必须先签署附录,然后才能选择应用程序或应用程序和 Web 选项” | 谷歌分析
- java - android:translationY 属性隐藏Edittext的下边框
- flutter - 如果边界半径存在,容器不会显示
- accessibility - 如何在自定义元素中使用标题元素?
- php - 尝试使用 excel mime 导出带有前导 0 的特定 SQL 数据