विषय पर बढ़ें

क्षेत्र

मॉडल के बीच संबंध स्थापित करने के लिए 12 बुनियादी नमूना क्षेत्र प्रकार के साथ-साथ विशेष विदेशी और कई क्षेत्र हैं।

!!!टिप विदेशी कुंजी और कई Toक्षेत्र की जाँच संबंधों का विवरण।

प्रत्येक फ़ील्ड को SQLALCHEMY कॉलम क्लास और पायथन प्रकार सौंपा गया है जिसका उपयोग नमूना बनाने के लिए किया जाता है।

क्षेत्र प्रकार

स्ट्रिंग

String(max_length: int, min_length: int = None, regex: str = None,) एक आवश्यक अधिकतम \ _ लंबाई पैरामीटर है।

  • Sqlalchकॉलम: sqlalchemy। स्ट्रिंग
  • प्रकार (for pydantic): str

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

पाठ

पाठ () में आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। पाठ
  • प्रकार (for pydantic): str

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

बूलियन

बूलियन () में आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। बूलियन
  • प्रकार (for pydantic): booएल

पूर्णांक

Integer(minimum: int = None, maximum: int = None, multiple_of: int = None) कोई आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। पूर्णांक
  • प्रकार (for pydantic): int

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

बड़ा पूर्णांक

BigInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) कोई आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। बड़ा
  • प्रकार (for pydantic): int

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

छोटा पूर्णांक

SmallInteger(minimum: int = None, maximum: int = None, multiple_of: int = None) कोई आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। छोटा
  • प्रकार (for pydantic): int

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

तैरना

Float(minimum: float = None, maximum: float = None, multiple_of: int = None) कोई आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। फ्लोट
  • प्रकार (for pydantic): तैरना

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

दशमलव

Decimal(minimum: float = None, maximum: float = None, multiple_of: int = None, precision: int = None, scale: int = None, max_digits: int = None, decimal_places: int = None) कोई आवश्यक पैरामीटर नहीं

आप लंबाई और सटीक मापदंडों या अधिकतम \ _ अंकों और दशमलव \ _ स्थानों का उपयोग कर सकते हैं।

  • Sqlalchकॉलम: sqlalchemy। निर्णय
  • प्रकार (for pydantic): दशमलव । दशमलव

!!!टिप अन्य मापदंडों पर निर्देशों के लिए, कृपया dप्रलेखन देखें।

तारीख

दिनांक () में आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy.Date
  • प्रकार (for pydantic): datetime.date

समय

समय (timezone: b= False) कोई आवश्यक पैरामीटर नहीं।

आप टाइमज़ोन-जागरूक डेटाबेस कॉलम के लिए टाइमज़ोन = ट्रू पास कर सकते हैं।

  • Sqlalchकॉलम: sqlalchemy। समय
  • प्रकार (for pydantic): date.time

दिनांक समय

DateTime(timezone: bool = False) कोई आवश्यक पैरामीटर नहीं हैं।

आप टाइमज़ोन-जागरूक डेटाबेस कॉलम के लिए टाइमज़ोन = ट्रू पास कर सकते हैं।

  • Sqlalchकॉलम: sqlalchemy। तारीख का समय
  • प्रकार (for pydantic): date.datetime

जेसन

JS() में आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: sqlalchemy। JS
  • प्रकार (for pydantic): pydantic। Json

बड़ी बाइनरी फ़ाइल

लार्जबाइनरी (max\ _length) एक आवश्यक अधिकतम \ _ लंबाई पैरामीटर है।

  • Sqlalchकॉलम: sqlalchemy। बड़ा बाइनरी
  • प्रकार (for pydantic): बाइट्स

कुछ बैकएंड में लार्जबाइनरी लंबाई का उपयोग किया जाता है (i.e. MySQL) एक क्षेत्र के आकार को निर्धारित करने के लिए, दूसरों में इसे केवल अनदेखा किया जाता है, लेकिन ormar में इसकी हमेशा आवश्यकता होती है। यह अधिकतम आकार होना चाहिए (in bytes) of फ़ाइल / बाइट।

लार्जबाइनरी भी उपलब्ध है represent_as_base64_str: bool = False झंडे। जब पर सेट किया जाता है, तो बाइट मान स्वचालित रूप से बेस64-डिकोड किए गए स्ट्रिंग्स में परिवर्तित हो जाते हैं, और आप बेस64-एन्कोडेड स्ट्रिंग पास करके मान भी सेट कर सकते हैं।

इस तरह, आप एपीआई के माध्यम से मान सेट कर सकते हैं, भले ही मान UTF-8 संगत न हो, अन्यथा यह JSरूपांतरण के दौरान विफल हो जाएगा।

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
आयात आधार 64
... # अन्य आयात संक्षिप्तता के लिए छोड़ दिया


base_ormar_config = ormar। marConfig (
    मेटाडेटा = मेटाडेटा
    डेटाबेस = डेटाबेस
)


क्लास लार्जबिनेरीस्टार (ormar. Model):
    ormar_config = base_ormar_config (टेबलनाम = "my_str_blobs")

    आईडी: int = ormar। पूर्णांक (primary_key = True)
    test_binary: str = ormar। बड़ा बाइनरी (
        अधिकतम_लंबाई = 100000, प्रतिनिधित्व_as_base64_str = सत्य
    )

# सेट गैर utf-8 अनुरूप मूल्य - ध्यान दें कि यह api द्वारा पारित किया जा सकता है (i.e.fastapi) जेसन में
आइटम = लार्जबिनेरीस्ट्रर (test_binary = e64.b64encode) (b "\ xc3\ x28").डिकोड ())

आइटम डालें। test_binary = = e64.b64en (b "\ xc3\ x28").डिकोड ()

# तकनीकी ध्यान दें कि अंतर्निहित मूल्य अभी भी बाइट्स है और इसे सहेजा जाएगा
आइटम निर्दिष्ट करें। __ dict __ ["test_binary"] = = b "\ xc3 \ x28"

सार्वभौमिक अद्वितीय डिवाइस पहचानकर्ता

UUID(uuid_format: str = 'hex') कोई आवश्यक पैरामीटर नहीं हैं।

  • Sqlalchकॉलम: ormar। Sqlalchपर आधारित UUID। CHAR (36) या sqlalchemy। CHAR (32) फ़ील्ड (स्ट्रिंग या हेक्साडेसिमल प्रारूप में, क्रमशः)
  • प्रकार (for pydantic): uuid। यूयूआईडी

id \ _ प्रारूप पैरामीटर "हेक्साडेसिमल" (default) या "स्ट्रिंग" मानों की अनुमति देता है।

प्रारूप के आधार पर, डेटाबेस में 32 या 36 वर्णों का उपयोग किया जाता है।

नमूना:

  • "हेक्साडेसिमल" प्रारूप मान = c616ab438cce49dbbf4380d109251dce (Character (32))
  • "स्ट्रिंग" मान = c616ab43-8cce-49db-bf43-80d109251dce (Character (36))

यह हमेशा एक पायथन UUID है जब लोड किया जाता है, तो आप इसकी तुलना कर सकते हैं और दो स्वरूपों के बीच मूल्यों की तुलना कर सकते हैं।

गणना

ormar में गणना का उपयोग करने के दो तरीके हैं -> , एक वर्ग कीमिया के एक समर्पित गणना क्षेत्र का उपयोग करना है। दुश्मन स्तंभ प्रकार, और दूसरा ormar में किसी भी क्षेत्र पर चयन सेट करना है।

Enum फ़ील्ड डेटाबेस बोली, विशिष्ट Enum स्तंभ प्रकार का उपयोग करते हैं (if available), लेकिन यदि यह फ़ील्ड प्रकार उपलब्ध नहीं है, तो वापस varपर जाएं।

चयन विकल्प हमेशा चयनित डेटाबेस फ़ील्ड प्रकार का पालन करते हैं।

इसलिए, जिसका उपयोग करना है, वह आपके द्वारा उपयोग किए जाने वाले बैकएंड और उस कॉलम / डेटा प्रकार पर निर्भर करता है जिसका आप गणना फ़ील्ड में उपयोग करना चाहते हैं।

गणना - क्षेत्र

Enum (enum \ _ class = प्रकार \ [Enum ]) एक आवश्यक enum \ _ वर्ग तर्क है।

  • Sqlalchकॉलम: sqlalchemy। दुश्मन
  • प्रकार (for pydantic): प्रकार \ [Enum ]