Форум сайта python.su
Привет всем!
Нужен CGI скрипт который запишет в Postgres параметры передаваемые в URL,
например: http://127.0.0.1/script_cgi-db.py?event=event&calledNumber=calledNumber
По отдельности скрипты работают, а вместе скомпоновать у меня не получается,
подскажите пожалуйста как надо делать что бы этот скрипт заработал.
# Python 3.6.9
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import psycopg2 from cgi import parse_qs, escape import os ### CGI url = parse_qs(os.environ.get('QUERY_STRING','').encode('utf-8', 'surrogateescape').decode('utf-8')) event = url.get('event', [''])[0] calledNumber = url.get('calledNumber', [''])[0] ### PostgreSQL conn = psycopg2.connect(user='phonecall', password='********', database='phonecall', host='127.0.0.1') cursor = conn.cursor() insert_query = """ INSERT INTO phonecall (event, callednumber) VALUES ('event', 'callednumber')""" cursor.execute(insert_query) conn.commit() cursor.close() conn.close()
Отредактировано ekssist (Июнь 26, 2021 17:31:50)
Офлайн
pip install psycopg2
Офлайн
Rodegast
pip install psycopg2
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import psycopg2 ### PostgreSQL conn = psycopg2.connect(user='phonecall', password='********', database='phonecall', host='127.0.0.1') cursor = conn.cursor() insert_query = """ INSERT INTO phonecall (event, callednumber) VALUES ('event', 'callednumber')""" cursor.execute(insert_query) conn.commit() cursor.close() conn.close()
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from cgi import parse_qs, escape import os ### CGI url = parse_qs(os.environ.get('QUERY_STRING','').encode('utf-8', 'surrogateescape').decode('utf-8')) event = url.get('event', [''])[0] calledNumber = url.get('calledNumber', [''])[0]
Отредактировано ekssist (Июнь 26, 2021 20:05:10)
Офлайн
А ты случайно гадость под названием virtual event не используешь?
Офлайн
Rodegast
А ты случайно гадость под названием virtual event не используешь?
Отредактировано ekssist (Июнь 26, 2021 21:20:31)
Офлайн
ekssistА ты от этого какую-то магию ждёшь? Для питона и для PostgreSQL-модуля это просто строка. Аргументы передай правильно.insert_query = """ INSERT INTO phonecall (event, callednumber) VALUES ('event', 'callednumber')""" cursor.execute(insert_query)
Офлайн
py.user.next
А ты от этого какую-то магию ждёшь? Для питона и для PostgreSQL-модуля это просто строка. Аргументы передай правильно.
Офлайн
> По отдельности они работают, а вместе не получается.
Должно всё работать. Посмотри какие пути прописаны в sys.path и проверь куда установлен psycopg2
Офлайн
ekssistКакую статику? Где у тебя аргументы передаются? Ты вообще понимаешь, что их передавать надо?
Просто на время тестирования прописал статику, что бы не отвлекаться, ты ведь знаешь что это не поможет.
Офлайн
Rodegast
>Должно всё работать. Посмотри какие пути прописаны в sys.path и проверь куда установлен psycopg2
Отредактировано ekssist (Июнь 28, 2021 17:23:51)
Офлайн