从PHP服务器调用Django服务器函数

时间:2018-09-14 07:06:41

标签: php django api django-celery celery-task

我刚被一家公司聘为初级python开发人员(我是唯一的python开发人员)。 在这里,他们希望将繁重的任务(批量邮件,Excel导入,PDF导出)从PHP服务器传递到Django服务器( celery ),以减轻工作量。 在我的计算机上,我设法在本地(分别)运行它们。

  

我的问题是从PHP服务器在django服务器上传递数据或触发功能的最佳方法是什么

例如,考虑以下代码: some_shit.php

    public function actionExportPdf()
    {
        $mPDF = Yii::app()->ePdf->mpdf();
        $model   = new Gulfuniversityapplication('search');
        $dbcriteria = Yii::app()->session['criteria'];
        $model->setDbCriteria($dbcriteria);

        $row  = Yii::app()->db->createCommand("select field_data from modules where table_name='".$model->tableName()."'")->queryRow();
        $filteredData = CJSON::decode($row['field_data']);
        //$filteredData = $data[$model->tableName()];
        $stylesheet = file_get_contents(getcwd().'/path/to/core/assets/css/social.css');
        $mPDF->WriteHTML($stylesheet, 1);
        $mPDF->WriteHTML($this->renderPartial('_exportPdf',array(
                        'model' => $model,
                        'data' => $filteredData,
                ), true));
        $mPDF->Output();
    }

这是他们的PHP,我不知道其中包含什么。

这是我的Django celery代码 task.py

@shared_task
def export_task(arg1,arg2):
    my_cursor = my_db.cursor()
    my_cursor.execute("SELECT arg1 FROM arg2")
    out =[]
    for i in my_cursor.fetchall():
        out.append(i)
    my_cursor.execute("DESCRIBE arg2")
    column = []
    for i in my_cursor.fetchall():
        column.append(i[0])
    df = pd.DataFrame(data=out,columns=column)
    writer = pd.ExcelWriter('output.xlsx')
    df.to_excel(writer,'Sheet1')
    writer.save()

这是我在这里的第一个问题,谢谢。

  

我一直在考虑从PHP调用POST API

如果这是针对yii框架的唯一解决方案

0 个答案:

没有答案