如何在我的PHP Apache PostgreSQL站点中嵌入python脚本?
我有一个用PHP和Apache PostgreSQL构建的网站;我为自己构建了一个python脚本,实现了一个图像比较算法。它返回从数据库中获取的最相似的图像 现在,我必须创建一个嵌入python脚本的网页。 我的问题是:哪一个是最快、最简单的解决方案如何在我的PHP Apache PostgreSQL站点中嵌入python脚本?,php,apache,django,python,Php,Apache,Django,Python,我有一个用PHP和Apache PostgreSQL构建的网站;我为自己构建了一个python脚本,实现了一个图像比较算法。它返回从数据库中获取的最相似的图像 现在,我必须创建一个嵌入python脚本的网页。 我的问题是:哪一个是最快、最简单的解决方案 创建一个php页面并与python脚本通信 安装用于Apache的WSGI框架,并使用 我的python脚本 安装WSGI+Django并创建python网页 用我的pythonscript 使用插座 我尝试了前两种选择。 在php页面中,我很难
更新:我的python脚本实现了一个图像比较算法。它返回从数据库中获取的最相似的图像。在不完全了解python脚本正在执行的操作的情况下,我将尝试快速浏览一下我将在您的位置上执行的操作 我用于所有web公开的应用程序。定制url模式非常有效,对遗留数据的访问非常出色,与这些数据交互的orb覆盖了我在所有项目中99%的需求 设置Django以在apache中运行将在中详细说明。一旦你有了你的新网站并与你的php应用程序并排运行,你就可以开始他们之间的交流了 Django访问PHP数据 Django manage.py可以基于现有表为您创建模型。在某些情况下,您可以使用现成的模型文件,但在大多数情况下,您需要创建自己的顺序并自定义表之间的关系。设置settings.py的database部分以指向PHP应用程序数据库
DATABASES = {
'default': {
'ENGINE':'django.db.backends.postgresql_psycopg2',
'NAME': 'myphpappdbname',
'USER': 'phpuser',
'PASSWORD': 'phppassword'
# snipped away other options. Might or might not bee needed
}
}
设置完成后,您可以使用
python manage.py dbshell
确保正确连接到数据库后,即可运行
python manage.py inspectdb>models.py
这将为每个表生成一个模型。将此模型文件添加到新django项目中的和应用程序中
python manage.py startapp phpextension
mv models.py phpextension/models.py
在“设置”中修改已安装的应用程序以包括新安装的应用程序,现在您可以通过django应用程序访问整个PHP应用程序数据。为希望在web上公开的数据创建视图
作为补充说明,如果您想向公众掩饰您混合了php和django/python,您可以使用以下内容创建URL模式:
url(r'^my_command.php$', 'phpextensions.views.my_command', name="my_command"),
为此,我认为您还需要设置设置APPEND\u SLASH=False
然后,视图会将django视图视为另一个php脚本(只不过更快、更优雅,并注入了神奇的独角兽)
通过PHP访问Django数据
这里我将使用RESTAPI。简单的方法就是在视图中使用JSON.dumps(my_dictionary_of_data_for_php)构建JSON响应,更企业的方法是使用
然后,您可以使用
$fc = file_get_contents('http://yourdomain.com/path/to/django/my_command.php');
$django_data = json_decode(fc);