SQLAlchemy 사용자 정의 유형의 원래 값을 얻는 방법은 무엇입니까?

Pinyi Wang |

간단히 말해서 내 질문 : SQLAlchemy에서 사용자 지정 형식의 원래 값에 액세스 할 수 있습니까?

사용자 정의 유형의 구현 :

class JSONDocument(TypeDecorator):
    # override field
    impl = JSON

    # Write
    def process_bind_param(self, value, dialect):
        if value is not None:
            req = requests.post(url, data=json.dumps({'data': value}))
            uri = req.json()['uri']
            value = uri
        return value

    # Read
    def process_result_value(self, value, dialect):
        if value is not None:
            uri = value
            req = requests.get(uri)
            value = req.json()['data']
        return value

내 테이블 모델 :

class SomeTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    # The column with large json data
    json_data = db.Column(JSONDocument)

json_data결과적으로 열에 쓸 행을 업데이트하거나 삽입하려고 할 때마다 SQLAlchemy는 JSONDocument's process_bind_param. 그런 다음 POST API 호출을 수행하여 NoSQL 테이블에 새 데이터 항목을 만들고 json_dataSQL 테이블 열을 반환 된 URI로 업데이트합니다 .

json_data열에 액세스하려고 할 때마다 SQL 테이블에 저장된 URI에 대한 GET API 호출을 수행하고 NoSQL 테이블에 저장된 실제 JSON 데이터를 반환합니다.

내 질문 : 내 SQL 테이블에 저장된 URI를 어떻게 얻을 수 JSONDocument있습니까? .NET Framework를 업데이트 할 때마다 이전 URI에 대한 DELETE API 호출을 수행하고 싶습니다 json_data.

SQLAlchemy의 매핑 이벤트 콜백을 사용해 보았지만 여전히 내 사용자 지정 형식 뒤에있는 URI를 가져올 수 없습니다.

내 질문이 충분히 명확하지 않은 경우 알려주세요. 어떤 제안이나 아이디어라도 감사합니다.

수행하려는 작업 요약 :

열이있는 Postgresql 데이터베이스 (RDS) 테이블이 있습니다 : id(int), json_data(string), other_columns...

때문에 json_data열이 너무 많은 저장 공간을 가지고있다, 나는 다른되는 NoSQL 데이터베이스 (DynamoDB의)에 해당 컬럼에 데이터를 이동하는 중이 야. NoSQL 테이블에서 데이터를 업데이트, 삽입 및 소프트 삭제하기 위해 RESTful API 서버를 구현했습니다.

내 앱 json_data이 다른 Python 코드 열에 액세스하려고 할 때마다 API 메서드를 자동으로 호출하는 SQLAlchemy 사용자 지정 형식을 구현하고 싶습니다 .

피터 마코

사용자 지정 TypeDecorator를 제거하고 속성을 사용하여 이와 유사한 SomeTable로 논리를 이동하는 것에 대해 알고 있습니까?

class SomeTable(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    # The column with large json data
    _uri = db.Column(db.JSON)

    @property
    def json_data(self):
        if self._uri is not None:
            req = requests.get(self._uri)
            return req.json()['data']
        else:
            return None

    @json_data.setter
    def json_data(self, value):
        req = requests.post(url, data=json.dumps({'data': value}))
        self._uri = req.json()['uri']

    @property
    def uri(self):
        return self._uri

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

WordPress에서 모든 사용자 정의 게시물 유형을 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 유형이있는 테이블에 값을 삽입하는 방법은 무엇입니까?

분류에서Dev

jstl을 사용하여 원래 값 옆에 임의의 값을 인쇄하는 방법은 무엇입니까?

분류에서Dev

Roslyn을 사용하여 사용자 입력 식의 유형을 얻는 방법은 무엇입니까?

분류에서Dev

JQuery를 사용하여 사용자 정의 HTML 속성의 값을 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 유형을 반복하고 특정 유형을 찾는 방법은 무엇입니까?

분류에서Dev

GetExtendedTcpTable을 사용하여 Windows에서 TCP 연결의 원래 PID를 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 문자열 유형의 혼합을 방지하는 방법은 무엇입니까?

분류에서Dev

SQLServer 용 SQLAlchemy에서 ID 열의 시작 값을 정의하는 방법은 무엇입니까?

분류에서Dev

enum 사용자 정의 속성의 가능한 모든 값을 얻는 방법은 무엇입니까?

분류에서Dev

WooCommerce에서 용어 사용자 정의 필드 값을 얻는 방법은 무엇입니까?

분류에서Dev

enum 값과 속성 유형을 전달하여 enum에서 사용자 정의 속성을 얻는 방법은 무엇입니까?

분류에서Dev

문자열 유형의 키 값 쌍에서 값을 얻는 방법은 무엇입니까?

분류에서Dev

SQLAlchemy의 필드에 NULL 값을 설정하는 방법은 무엇입니까?

분류에서Dev

Spring Integration Gateway에서 사용자 정의 헤더 값을 얻는 방법은 무엇입니까?

분류에서Dev

typescript를 사용하여 vue prop 유형을 사용자 클래스의 배열로 설정하는 방법은 무엇입니까?

분류에서Dev

저지에서 MediaType 클래스를 사용하여 사용자 정의 MIME 유형을 만드는 방법은 무엇입니까?

분류에서Dev

Java에서 사용자 정의 데이터 유형의 HashSet을 만드는 방법은 무엇입니까?

분류에서Dev

ReactJS를 사용하여 사용자 입력 필드의 값을 얻는 방법은 무엇입니까?

분류에서Dev

문자열에서 지정된 클래스의 모든 내용을 얻는 방법은 무엇입니까?

분류에서Dev

Apache의 사용자 이름 (전용)을 얻는 방법은 무엇입니까?

분류에서Dev

Java의 사용자 정의 ArrayList에서 특정 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 클래스와 함께 std :: unordered_multiset을 사용하는 방법은 무엇입니까?

분류에서Dev

C ++ : # define을 사용자 정의 클래스와 함께 사용하는 방법은 무엇입니까?

분류에서Dev

사용자 정의 유형에 대해 UnmarshalJSON을 선언하는 올바른 방법은 무엇입니까?

분류에서Dev

MS Graph : 로그인 한 사용자의 계정 유형을 확인하는 방법은 무엇입니까?

분류에서Dev

Delphi에서 사용자 정의 유형을 선언하는 방법은 무엇입니까?

분류에서Dev

JavaScript에서 사용자 정의 파일 유형으로 파일을 만드는 방법은 무엇입니까?

분류에서Dev

이 사용자 정의 유형을 삭제하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    WordPress에서 모든 사용자 정의 게시물 유형을 얻는 방법은 무엇입니까?

  2. 2

    사용자 정의 유형이있는 테이블에 값을 삽입하는 방법은 무엇입니까?

  3. 3

    jstl을 사용하여 원래 값 옆에 임의의 값을 인쇄하는 방법은 무엇입니까?

  4. 4

    Roslyn을 사용하여 사용자 입력 식의 유형을 얻는 방법은 무엇입니까?

  5. 5

    JQuery를 사용하여 사용자 정의 HTML 속성의 값을 얻는 방법은 무엇입니까?

  6. 6

    사용자 정의 유형을 반복하고 특정 유형을 찾는 방법은 무엇입니까?

  7. 7

    GetExtendedTcpTable을 사용하여 Windows에서 TCP 연결의 원래 PID를 얻는 방법은 무엇입니까?

  8. 8

    사용자 정의 문자열 유형의 혼합을 방지하는 방법은 무엇입니까?

  9. 9

    SQLServer 용 SQLAlchemy에서 ID 열의 시작 값을 정의하는 방법은 무엇입니까?

  10. 10

    enum 사용자 정의 속성의 가능한 모든 값을 얻는 방법은 무엇입니까?

  11. 11

    WooCommerce에서 용어 사용자 정의 필드 값을 얻는 방법은 무엇입니까?

  12. 12

    enum 값과 속성 유형을 전달하여 enum에서 사용자 정의 속성을 얻는 방법은 무엇입니까?

  13. 13

    문자열 유형의 키 값 쌍에서 값을 얻는 방법은 무엇입니까?

  14. 14

    SQLAlchemy의 필드에 NULL 값을 설정하는 방법은 무엇입니까?

  15. 15

    Spring Integration Gateway에서 사용자 정의 헤더 값을 얻는 방법은 무엇입니까?

  16. 16

    typescript를 사용하여 vue prop 유형을 사용자 클래스의 배열로 설정하는 방법은 무엇입니까?

  17. 17

    저지에서 MediaType 클래스를 사용하여 사용자 정의 MIME 유형을 만드는 방법은 무엇입니까?

  18. 18

    Java에서 사용자 정의 데이터 유형의 HashSet을 만드는 방법은 무엇입니까?

  19. 19

    ReactJS를 사용하여 사용자 입력 필드의 값을 얻는 방법은 무엇입니까?

  20. 20

    문자열에서 지정된 클래스의 모든 내용을 얻는 방법은 무엇입니까?

  21. 21

    Apache의 사용자 이름 (전용)을 얻는 방법은 무엇입니까?

  22. 22

    Java의 사용자 정의 ArrayList에서 특정 문자열을 얻는 방법은 무엇입니까?

  23. 23

    사용자 정의 클래스와 함께 std :: unordered_multiset을 사용하는 방법은 무엇입니까?

  24. 24

    C ++ : # define을 사용자 정의 클래스와 함께 사용하는 방법은 무엇입니까?

  25. 25

    사용자 정의 유형에 대해 UnmarshalJSON을 선언하는 올바른 방법은 무엇입니까?

  26. 26

    MS Graph : 로그인 한 사용자의 계정 유형을 확인하는 방법은 무엇입니까?

  27. 27

    Delphi에서 사용자 정의 유형을 선언하는 방법은 무엇입니까?

  28. 28

    JavaScript에서 사용자 정의 파일 유형으로 파일을 만드는 방법은 무엇입니까?

  29. 29

    이 사용자 정의 유형을 삭제하는 방법은 무엇입니까?

뜨겁다태그

보관