Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的PHP Apache PostgreSQL站点中嵌入python脚本?_Php_Apache_Django_Python - Fatal编程技术网

如何在我的PHP Apache PostgreSQL站点中嵌入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页面中,我很难

我有一个用PHP和Apache PostgreSQL构建的网站;我为自己构建了一个python脚本,实现了一个图像比较算法。它返回从数据库中获取的最相似的图像

现在,我必须创建一个嵌入python脚本的网页。 我的问题是:哪一个是最快、最简单的解决方案

  • 创建一个php页面并与python脚本通信
  • 安装用于Apache的WSGI框架,并使用 我的python脚本
  • 安装WSGI+Django并创建python网页 用我的pythonscript
  • 使用插座
  • 我尝试了前两种选择。 在php页面中,我很难用python脚本与变量通信 使用WSGI,我必须改变我的思维方式:在php中,逻辑和接口是混合的,在python中是分开的


    更新:我的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);