0
RESTful 웹 서비스 용 마이크로 서비스를 작성하려고합니다. 'Postgresql'에서 데이터베이스를 만들고 현재 Flask와 psycopg2 (db-object를 json 객체로 변환)를 사용하고 있습니다. 다음은 내 코드의 일부입니다. 그러나 어떤 이유로 든 오류가 발생합니다. 내가 설정하려고하는 URI는 다소 비슷합니다 localhost/events/20171222
이 문제를 해결하려면 올바른 방법이 무엇입니까?Python을 사용하여 Flask에서 끝점을 만드는 동안 문제가 발생했습니다.
코드 :
app = Flask(__name__)
conn = psycopg2.connect("dbname='postgresdb'")
cur = conn.cursor(cursor_factory=RealDictCursor)
@app.route('/events/<dated>', methods=['GET'])
def getDatedEvents(dated):
date_obj = datetime.strptime(dated, '%Y%m%d')
#print(type(date_obj))
#print(date_obj)
cur.execute("""
SELECT event_id, timestamp
FROM event_tbl
WHERE timestamp < date_obj
ORDER BY timestamp
LIMIT 25
""")
return json.dumps(cur.fetchall(), default=json_serial)
오류 출력 : 당신은 당신의 쿼리를 수정해야
psycopg2.ProgrammingError: column "date_obj" does not exist
LINE 4: WHERE timestamp < date_obj
^
localhost - - [22/Dec/2017 17:22:29] "GET /events/20161020 HTTP/1.1" 500 -
감사합니다 :) @py_dude –
@ GabbarSingh이 답변을 도움이된다고 표시 할 수 있습니다. –
쿼리에 '서식 지정'을 지정하지 않으면 코드에 SQL 주입 취약점이 생성됩니다. 쿼리 매개 변수를 사용하십시오. https://stackoverflow.com/questions/1466741/parameterized-queries-with-psycopg2-python-db-ap-and-postgresql – leovp