我正在实现一个简单的 Android 应用程序,它需要将数据发送到网络服务器。我目前使用 HttpUrlConnection 通过 POST 请求将数据发送到服务器上的 php 脚本。
$value1 = $_POST["value1"];
$value2 = $_POST["value2"];
如上所示的简化接收值。在应用程序中,我使用 url,脚本保存在服务器上。
是否也有一种简单的方法可以使用 python 完成此操作?还是只有一些更复杂的解决方案?
我只能找到多种使用 python 发送请求或在网络服务器内交换数据的方法。但对我的项目没有任何作用。
答案 0 :(得分:1)
在 Python 中获得 POST
的更简单方法是使用 Flask
并使用内置服务器运行它。
script.py
from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST', 'GET'])
def index():
if request.method == 'POST':
value1 = request.form.get('value1')
value2 = request.form.get('value2')
return 'OK'
else:
return 'Use POST requests'
if __name__ == '__main__':
#app.debug = True
app.run(host='0.0.0.0', port=8000)
并运行为
python script.py
它将在端口 8000
上运行服务器,以便您可以连接 http://myserver:8000/
但是如果您已经使用 Apache
运行了 nginx
/PHP
,那么这就会出现问题。
您不能在同一个端口 80
上运行两台服务器。它需要用 Apache
运行所有。
PHP
是为网页创建的,Apache
预装了模块来运行 PHP
(并运行像 Laravel
这样的 PHP 框架),但通常它没有模块Python
。它可能会安装模块来运行 Python 或其他模块来运行 CGI 或 FastCGI(这意味着任何可执行脚本 - Python、Perl、Bash,甚至编译的 C/C++),但这是一种非常古老的方法,需要 Python 中的不同模块 - 所以宁可它不能运行 Flask
- 可能没有人使用它。 Flask
, Django
, Bottle
编写代码更简单,具有许多内置函数,并且代码更清晰、组织得更好 - 就像在 PHP 框架中一样。
Flask
和其他 Python Web 框架(如 Django
、Bottle
)被创建为与 WSGI 服务器(如 Gunicorn
)一起运行。它们最终仅将 Apache
用作 proxy-server
并提供静态文件,如图像、CSS。因此,要在外部服务器上使用 Flask/Django,您必须找到为 Flask
、Django
等配置的服务器,例如 PythonAnywhere
在 PHP
中,您可以将所有内容混合到一个文件中 - 代码、HTML、SQL - 这样它就可以搞得一团糟,人们创建了 Laravel
之类的框架,使其更清晰、更有条理。在 Python
中,您使用的是初始框架,因此您必须将 Flask
与 PHP 框架进行比较,但不能与纯 PHP 进行比较。