Django Utils¶

ساخت وبلاگ

این سند تمام ماژول های پایدار را در django. utils پوشش می دهد. بسیاری از ماژول ها در django. utils برای استفاده داخلی طراحی شده اند و فقط قسمت های زیر را می توان پایدار دانست و در نتیجه مطابق با سیاست استهلاک انتشار داخلی سازگار است.

django. utils. cache

این ماژول شامل توابع یاور برای کنترل حافظه پنهان HTTP است. این کار را با مدیریت هدر مختلف پاسخ ها انجام می دهد. این شامل توابع برای وصله کردن هدر اشیاء پاسخ به طور مستقیم و دکوراسیون هایی است که توابع را برای انجام این هدر خود تغییر می دهد.

در اصل ، هدر HTTP متفاوت تعریف می کند که در هنگام ساخت کلید حافظه نهان خود ، یک حافظه نهان باید در نظر گرفته شود. درخواست هایی با همان مسیر اما محتوای مختلف هدر برای هدرهای نامگذاری شده در انواع مختلف نیاز به دریافت کلیدهای حافظه پنهان مختلف برای جلوگیری از تحویل محتوای اشتباه دارند.

به عنوان مثال ، میان افزار بین المللی باید حافظه پنهان را توسط عنوان پذیرش به زبان متمایز کند.

patch_cache_control (پاسخ ، ** kwargs)

این تابع با اضافه کردن تمام آرگومان های کلیدی کلیدی به آن ، عنوان حافظه نهان را لکه دار می کند. تحول به شرح زیر است:

  • تمام نام پارامترهای کلمات کلیدی به حروف کوچک تبدیل می شوند و زیرکانها به Hyphens تبدیل می شوند.
  • اگر مقدار یک پارامتر صحیح باشد (دقیقاً درست است ، نه فقط یک مقدار واقعی) ، فقط نام پارامتر به عنوان اضافه می شود.
  • تمام پارامترهای دیگر پس از اعمال STR () به آن ، با مقدار آنها اضافه می شوند.

حداکثر سن را از هدر کنترل حافظه نهان پاسخ به عنوان یک عدد صحیح باز می گرداند (یا هیچ کدام در صورتی که پیدا نشد یا یک عدد صحیح نبود).

patch_response_headers (پاسخ ، cache_timeout = هیچ)

برخی از هدرهای مفید را به شیء HTTPRESPONSE داده شده اضافه می کند:

هر هدر فقط در صورتی اضافه می شود که قبلاً تنظیم نشده باشد.

cache_timeout در چند ثانیه است. تنظیمات cache_middleware_seconds به طور پیش فرض استفاده می شود.

یک هدر منقضی را به تاریخ/زمان فعلی اضافه می کند.

یک کنترل حافظه نهان را اضافه می کند: حداکثر سن = 0 ، بدون نگهدارنده ، بدون فروشگاه ، مجدداً مورد تأیید ، هدر خصوصی به پاسخ نشان می دهد که یک صفحه هرگز نباید ذخیره شود.

هر هدر فقط در صورتی اضافه می شود که قبلاً تنظیم نشده باشد.

patch_vary_headers (پاسخ ، Newheaders)

عنوان (یا به روزرسانی) هدر مختلف را در شیء HTTPRESPONSE داده شده اضافه می کند. Newheaders لیستی از نام های هدر است که باید متفاوت باشد. اگر هدر حاوی ستاره باشد ، طبق گفته RFC 7231#بخ ش-7. 1. 4 ، هدر متفاوت از یک ستاره "*" تشکیل شده است. در غیر این صورت ، هدرهای موجود در متفاوت حذف نمی شوند.

get_cache_key (درخواست ، key_prefix = هیچ ، روش = 'get' ، cache = none)

یک کلید حافظه پنهان را بر اساس مسیر درخواست برمی گرداند. این می تواند در مرحله درخواست مورد استفاده قرار گیرد زیرا لیست هدرها را برای در نظر گرفتن رجیستری مسیر جهانی در نظر می گیرد و از آنها برای ساخت کلید حافظه نهان برای بررسی در برابر استفاده می کند.

اگر هیچ هدر لیست ذخیره نشده باشد ، صفحه باید بازسازی شود ، بنابراین این عملکرد هیچ یک را برمی گرداند.

LEARN_CACHE_KEY (درخواست ، پاسخ ، cache_timeout = هیچ ، key_prefix = هیچ ، حافظه پنهان = هیچ)

می آموزد که چه هدرها را برای برخی از مسیر درخواست از شیء پاسخ در نظر می گیرند. این هدرها را در یک رجیستری مسیر جهانی ذخیره می کند تا بعداً به آن مسیر دسترسی پیدا کند ، می داند چه هدرها را بدون ایجاد خود شیء پاسخ می گیرند. هدرها در هدر مختلف پاسخ نامگذاری شده اند ، اما ما می خواهیم از تولید پاسخ جلوگیری کنیم.

لیست هدرهایی که برای تولید کلید حافظه پنهان استفاده می شود ، در همان حافظه نهان خود صفحات ذخیره می شود. اگر حافظه نهان برخی از داده ها را از حافظه نهان خارج کند ، این بدان معنی است که ما باید یک بار پاسخ را بسازیم تا در هدر مختلف قرار بگیریم و بنابراین در لیست هدرها برای استفاده از کلید حافظه نهان.

django. utils. dateparse ¶

توابع تعریف شده در این ماژول ویژگی های زیر را به اشتراک می گذارند:

  • آنها رشته ها را در قالب های تاریخ/زمان ISO 8601 (یا برخی از گزینه های نزدیک) می پذیرند و اشیاء را از کلاس های مربوطه در ماژول DateTime Python باز می گردانند.
  • اگر ورودی آنها به خوبی فرمت شده باشد اما یک تاریخ یا زمان معتبر نیست ، آنها ValueError را جمع می کنند.
  • اگر اصلاً به خوبی فرمت نشده باشد ، آنها هیچکدام را برمی گردانند.
  • آنها وضوح پیکس ثانیه را در ورودی می پذیرند ، اما آن را به میکرو ثانیه ها کوتاه می کنند ، زیرا این همان چیزی است که پایتون از آن پشتیبانی می کند.

یک رشته را تجزیه می کند و یک dateTime. date را برمی گرداند.

یک رشته را تجزیه می کند و یک dateTime. time را برمی گرداند.

جبران UTC پشتیبانی نمی شود ؛اگر مقدار یکی را توصیف کند ، نتیجه هیچ یک نیست.

یک رشته را تجزیه می کند و یک datetime. datetime را برمی گرداند.

جبران خسارات UTC پشتیبانی می شود. اگر مقدار یکی را توصیف کند ، ویژگی tzinfo نتیجه یک نمونه dateTime. TimeZone است.

یک رشته را تجزیه می کند و یک dateTime. Timedelta را برمی گرداند.

انتظار داده ها در قالب "DD HH: MM: Ss. uuuuuu" ، "DD HH: MM: SS ، UUUUUU" ، یا همانطور که توسط ISO 8601 مشخص شده است (به عنوان مثال P4DT1H15M20S که معادل 4 1:15:20) یا روز Postgresql's Dayقالب بازه زمانی (به عنوان مثال 3 روز 04:05:06).

django. utils. decorators

دکوراتور عملکردی را به یک دکوراتور روش تبدیل می کند. می توان از آن برای تزئین روش ها یا کلاس ها استفاده کرد. در حالت دوم ، نام نام روشی است که باید تزئین شود و مورد نیاز است.

دکوراتور همچنین ممکن است یک لیست یا چند کارکرد باشد. آنها به ترتیب معکوس پیچیده می شوند به طوری که ترتیب فراخوانی به ترتیبی است که توابع در لیست / دوتایی ظاهر می شوند.

با توجه به یک کلاس میان افزار، یک View decorator را برمی گرداند. این به شما امکان می دهد از عملکرد میان افزار بر اساس هر نمایش استفاده کنید. میان افزار بدون هیچ پارامتری ایجاد شده است.

میان افزاری را فرض می کند که با سبک قدیمی جنگو 1. 9 و نسخه های قبلی سازگار است (دارای روش هایی مانند process_request() ، process_exception() و process_response()).

مانند decorator_from_middleware، اما تابعی را برمی گرداند که آرگومان هایی را می پذیرد که باید به Middleware_class ارسال شوند. به عنوان مثال، cache_page() decorator از CacheMiddleware به شکل زیر ایجاد می شود:

یک میان افزار را به عنوان فقط همزمان علامت گذاری می کند.(پیش فرض در جنگو است، اما به شما امکان می دهد در صورت تغییر پیش فرض در نسخه های آینده، از آینده محافظت کنید.)

میان افزار را به عنوان فقط ناهمزمان علامت گذاری می کند. وقتی جنگو از مسیر درخواست WSGI فراخوانی شود، آن را در یک حلقه رویداد ناهمزمان قرار می دهد.

میان افزار را به عنوان سازگار با همگام سازی و همگام سازی علامت گذاری می کند، این اجازه می دهد از تبدیل درخواست ها جلوگیری شود. برای استفاده از این دکوراتور باید تشخیص نوع درخواست فعلی را اجرا کنید. برای جزئیات به مستندات میان افزار ناهمزمان مراجعه کنید.

django. utils. encoding ¶

یک شی str را نشان می دهد که شی دلخواه s را نشان می دهد. با استفاده از کدک رمزگذاری، بایتسترینگ ها را درمان می کند.

اگر strings_only True است، (برخی) اشیاء غیر رشته مانند را تبدیل نکنید.

تعیین کنید که آیا نمونه شی از نوع محافظت شده است یا خیر.

وقتی به force_str (strings_only=True) منتقل می شود، اشیاء انواع محافظت شده همانطور که هست حفظ می شوند.

force_str ( s , encoding = 'utf-8' , strings_only = False , errors = 'strict' ) [منبع] ¶

مشابه smart_str() با این تفاوت که نمونه های تنبل به جای اینکه به عنوان اشیاء تنبل نگهداری شوند به رشته ها تفکیک می شوند.

اگر strings_only True است، (برخی) اشیاء غیر رشته مانند را تبدیل نکنید.

smart_bytes (s , encoding = 'utf-8' , strings_only = False , errors = 'strict' ) [منبع] ¶

یک نسخه آزمایشی بای از شی دلخواه s را برمی گرداند که همانطور که در رمزگذاری مشخص شده است کدگذاری شده است.

اگر strings_only True است، (برخی) اشیاء غیر رشته مانند را تبدیل نکنید.

force_bytes (s , encoding = 'utf-8' , strings_only = False , errors = 'strict' ) [منبع] ¶

مشابه smart_bytes، با این تفاوت که نمونه های تنبل به جای اینکه به عنوان اشیاء تنبل نگهداری شوند، به بایتسترینگ حل می شوند.

اگر strings_only True است، (برخی) اشیاء غیر رشته مانند را تبدیل نکنید.

یک بخش شناسه منبع بین المللی (IRI) را به یک بخش URI تبدیل کنید که برای درج در URL مناسب است.

این الگوریتم بخش 3. 1 RFC 3987#section-3. 1 است که کمی ساده شده است زیرا ورودی به جای یک جریان بایت دلخواه، یک رشته فرض می شود.

یک IRI (رشته یا UTF-8 بایت) می گیرد و رشته ای حاوی نتیجه کدگذاری شده را برمی گرداند.

یک شناسه منبع یکسان را به یک شناسه منبع بین المللی تبدیل می کند.

این الگوریتمی از بخش 3. 2 RFC 3987#section-3. 2 است.

یک URI در بایت ASCII می گیرد و رشته ای حاوی نتیجه کدگذاری شده را برمی گرداند.

یک مسیر سیستم فایل را به یک بخش URI تبدیل کنید که برای درج در URL مناسب است. مسیر به صورت UTF-8 بایت، رشته یا یک مسیر در نظر گرفته می شود.

این روش کاراکترهای خاصی را رمزگذاری می کند که معمولاً به عنوان کاراکترهای ویژه برای URI شناخته می شوند. توجه داشته باشید که این روش کاراکتر ' را رمزگذاری نمی کند، زیرا یک کاراکتر معتبر در URI است. برای جزئیات بیشتر، تابع جاوا اسکریپت () encodeURIcomponent را ببینید.

یک رشته ASCII حاوی نتیجه کدگذاری شده را برمی گرداند.

از نویسه های ناامن از قسمت مسیر یک شناسه منبع یکنواخت (URI) فرار می کند.

django. utils. feedgenerator ¶

برای ساده کردن انتخاب یک ژنراتور از feedgenerator. DefaultFeed که در حال حاضر Rss201rev2Feed است استفاده کنید.

یک TagURI ایجاد می کند.

SyndicationFeed ¶

کلاس پایه برای همه فیدهای سندیکایی. زیر کلاس ها باید write() را ارائه کنند.

__init__ (عنوان، پیوند، توضیحات، زبان = هیچ، نویسنده_ایمیل = هیچ، نویسنده_نام = هیچ، نویسنده_لینک = هیچ، زیرنویس = هیچ، دسته ها = هیچ، feed_url = هیچ، feed_copyright = هیچ، feed_guid = هیچ، ttl = هیچ،kwargs ) [منبع] ¶

فید را با فرهنگ لغت فوق داده داده شده، که برای کل فید اعمال می شود، راه اندازی کنید.

هر آرگومان اضافی کلمه کلیدی که به __init__ ارسال می کنید در self. feed ذخیره می شود.

همه پارامترها باید رشته باشند، به جز دسته ها، که باید دنباله ای از رشته ها باشد.

add_item (عنوان، پیوند، توضیحات، author_email = هیچ، author_name = هیچ، author_link = هیچ، pubdate = هیچ، نظرات = هیچ، unique_id = هیچ، دسته ها = ()، item_copyright = هیچ، ttl = هیچ، updateddate = هیچ،= هیچ، ** kwargs ) [منبع] ¶

یک مورد را به فید اضافه می کند. انتظار می رود همه آرگ ها رشته باشند به جز pubdate و updateddate که اشیاء datetime. datetime هستند و enclosures که لیستی از نمونه های Enclosure است.

ویژگی های اضافی را برای قرار دادن روی عنصر ریشه (یعنی خوراک/کانال) برگردانید. از نوشتن () خوانده می شود.

عناصر را در عنصر ریشه (یعنی خوراک/کانال) اضافه کنید. از نوشتن () خوانده می شود.

ویژگی های اضافی را برای قرار دادن در هر عنصر (یعنی مورد/ورودی) برگردانید.

عناصر را در هر مورد (یعنی مورد/ورودی) اضافه کنید.

فید را در رمزگذاری داده شده به Outfile ، که یک شیء مانند پرونده است ، خروجی می کند. زیر کلاس ها باید این را نادیده بگیرند.

فید را در رمزگذاری داده شده به عنوان یک رشته برمی گرداند.

آخرین PubDate یا به روز شده برای همه موارد موجود در فید را برمی گرداند. اگر هیچ موردی هیچ یک از این ویژگی ها را نداشته باشد ، این تاریخ/زمان فعلی UTC را برمی گرداند.

محفظه ¶

یک محفظه RSS را نشان می دهد

rssfeed

RSS201REV2FEED

RSSUSERLAND091FEED

atom1feed

django. utils. functional

دکوراتور cached_property نتیجه یک روش را با یک استدلال خود به عنوان یک خاصیت ذخیره می کند. نتیجه ذخیره شده تا زمانی که نمونه انجام شود ، ادامه خواهد یافت ، بنابراین اگر نمونه به اطراف منتقل شود و عملکرد متعاقباً فراخوانی شود ، نتیجه ذخیره شده بازگردانده می شود.

یک مورد معمولی را در نظر بگیرید ، در جایی که ممکن است یک دیدگاه برای انجام برخی از محاسبات ، قبل از قرار دادن نمونه مدل در متن ، نیاز به استفاده از یک مدل مدل داشته باشد ، جایی که ممکن است این الگوی یک بار دیگر از این روش استفاده کند:

و در الگوی شما:

در اینجا ، دوستان () دو بار خوانده می شوند. از آنجا که شخص نمونه در نمای و الگوی یکسان است ، دکوراسیون روش دوستان () با cached_property می تواند از این امر جلوگیری کند:

توجه داشته باشید که از آنجا که این روش اکنون یک ویژگی است ، در کد پایتون باید به طور مناسب به آن دسترسی پیدا کنید:

مقدار ذخیره شده را می توان مانند یک ویژگی معمولی از نمونه درمان کرد:

به دلیل روشی که پروتکل توصیف کننده کار می کند ، استفاده از DEL (یا DELATTR) در یک cached_property که به آن دسترسی پیدا نکرده است ، AttributeError را افزایش می دهد.

علاوه بر ارائه مزایای عملکرد بالقوه ، cached_property می تواند اطمینان حاصل کند که مقدار یک ویژگی به طور غیر منتظره ای در طول زندگی یک نمونه تغییر نمی کند. این می تواند با روشی رخ دهد که محاسبه آن مبتنی بر dateTime. Now () باشد ، یا اگر تغییری توسط برخی فرآیند دیگر در فاصله کوتاه بین دعوت های بعدی یک روش در همان نمونه به پایگاه داده ذخیره شود.

می توانید از روشهای ذخیره شده استفاده کنید. به عنوان مثال ، اگر شما یک روش گران قیمت () () گران قیمت داشتید و می خواستید بدون بازیابی مقدار ذخیره شده ، آن را فراخوانی کنید ، می توانید بنویسید:

در حالی که person. get_friends () در هر تماس دوستان را دوباره به دست می آورد ، ارزش ملک ذخیره شده تا زمانی که آن را همانطور که در بالا توضیح داده شده است ، ادامه می یابد:

از زمان نسخه 4. 1 مستهلک می شود: پارامتر نام از بین می رود و در Django 5. 0 حذف می شود زیرا از نظر پایتون 3. 6 غیر ضروری است.

شبیه به classmethod ، دکوراتور ClassProperty نتیجه یک روش را با یک آرگومان CLS واحد به یک ویژگی تبدیل می کند که می توان مستقیماً از کلاس به آن دسترسی پیدا کرد.

Django بسیاری از توابع ابزار (به ویژه در django. utils) را ارائه می دهد که به عنوان اولین استدلال خود رشته ای می گیرند و کاری را برای آن رشته انجام می دهند. این توابع توسط فیلترهای الگو و همچنین به طور مستقیم در کد دیگر استفاده می شوند.

اگر عملکردهای مشابه خود را بنویسید و با ترجمه ها سر و کار داشته باشید ، وقتی اولین استدلال یک شیء ترجمه تنبل است ، با این مشکل روبرو خواهید شد. شما نمی خواهید آن را بلافاصله به یک رشته تبدیل کنید ، زیرا ممکن است در خارج از یک نمای از این عملکرد استفاده کنید (و از این رو تنظیم محلی موضوع فعلی صحیح نخواهد بود).

برای مواردی از این دست ، از دکوراتور django. utils. functional. keep_lazy () استفاده کنید. این عملکرد را به گونه ای تغییر می دهد که اگر با ترجمه تنبل به عنوان یکی از آرگومان های آن فراخوانی شود ، ارزیابی عملکرد تا زمانی که نیاز به تبدیل به یک رشته داشته باشد به تأخیر می افتد.

دکوراتور Keep_Lazy () تعدادی آرگومان اضافی ( *استدلال) را مشخص می کند که نوع (های) را که عملکرد اصلی می تواند برگردد ، مشخص می کند. یک مورد استفاده رایج داشتن توابعی است که متن را برمی گرداند. برای این موارد ، می توانید نوع STR را برای نگه داشتن_لازی (یا از دکوراتور keep_lazy_text () که در بخش بعدی شرح داده شده است استفاده کنید).

استفاده از این دکوراتور به این معنی است که می توانید عملکرد خود را بنویسید و فرض کنید که ورودی یک رشته مناسب است ، سپس در انتها پشتیبانی از اشیاء ترجمه تنبل را اضافه کنید.

میانبر برای Keep_Lazy (STR) (Func).

اگر عملکردی دارید که متن را برمی گرداند و می خواهید ضمن تأخیر در ارزیابی آنها ، استدلال های تنبل کنید ، می توانید از این دکوراتور استفاده کنید:

django. utils.html

معمولاً شما باید با استفاده از مکانیسم AutoEscape آن ، با استفاده از برنامه های کاربردی در django. utils. safestring در صورت لزوم ، HTML را با استفاده از الگوهای Django بسازید. این ماژول برخی از ابزارهای سطح پایین اضافی را برای فرار از HTML فراهم می کند.

متن داده شده را با آمپرسند ، نقل قول ها و براکت های زاویه ای رمزگذاری شده برای استفاده در HTML باز می گرداند. ورودی ابتدا به یک رشته وارد می شود و خروجی دارای mark_safe () اعمال می شود.

مشابه فرار () ، به جز اینکه در رشته های از پیش تنظیم شده کار نمی کند ، بنابراین فرار مضاعف نخواهد بود.

format_html (format_string ، * args ، ** kwargs) [منبع]

این شبیه به Str. Format () است ، به جز اینکه برای ساخت قطعات HTML مناسب است. قبل از انتقال به str. format () ، همه استدلال ها و kwargs از طریق شرطی_کپه () منتقل می شوند.

در مورد ساخت قطعات HTML کوچک ، این عملکرد باید مستقیماً با استفاده از ٪ یا str. format () به طور مستقیم از درون یابی رشته ترجیح داده شود ، زیرا این امر فرار از همه آرگومان ها را اعمال می کند - دقیقاً مانند سیستم الگو به طور پیش فرض فرار می کند.

بنابراین ، به جای نوشتن:

در عوض باید استفاده کنید:

این مزیت را دارد که شما نیازی به استفاده از فرار () برای هر استدلال ندارید و در صورت فراموش کردن ، یک اشکال و آسیب پذیری XSS را به خطر می اندازید.

توجه داشته باشید که اگرچه این تابع از Str. Format () برای انجام درون یابی استفاده می کند ، برخی از گزینه های قالب بندی ارائه شده توسط Str. Format () (به عنوان مثال قالب بندی شماره) کار نمی کنند ، زیرا تمام آرگومان ها از طریق COLLITION_ESCAPE () که (در نهایت) منتقل می شود. force_str () را بر روی مقادیر فراخوانی می کند.

format_html_join (sep ، format_string ، args_generator) [منبع]

بسته بندی فرمت_html () ، برای مورد مشترک گروهی از آرگومان هایی که باید با استفاده از همان رشته فرمت فرمت شوند ، و سپس با استفاده از SEP پیوستند. SEP نیز از طریق شرطی_کاپ () منتقل می شود.

args_generator باید یک تکرار کننده باشد که دنباله ARG هایی را که به Format_HTML منتقل می شود ، برمی گرداند. مثلا:

از همه شخصیت های خاص HTML/XML با فرار Unicode خود فرار می کند ، بنابراین ارزش برای استفاده با JavaScript ایمن است. همچنین JSON فراری را در یک برچسب می پیچد. اگر پارامتر Element_ID هیچ کدام نباشد ، برچسب گذاشته شده به برچسب داده می شود. مثلا:

در نسخه های قدیمی ، آرگومان Element_ID مورد نیاز بود.

سعی می کند هر چیزی را که شبیه یک برچسب HTML از رشته است ، حذف کند ، این چیزی است که در آن وجود دارد<> .

کاملاً هیچ تضمینی در مورد رشته حاصل از HTML ایمن ارائه نشده است. بنابراین هرگز نتیجه تماس با نوار_تگ را بدون فرار از آن ، به عنوان مثال با فرار () ایمن نکنید.

اگر ارزش "جوئل"آلگد زدن"مقدار بازگشت خواهد بود" جوئل یک لاله است ".

اگر به دنبال یک راه حل قوی تر هستید ، به کتابخانه Bleach Python نگاهی بیندازید.

روش __html __ () در یک کلاس به الگوهای غیر Django کمک می کند تا کلاس هایی را که خروجی آنها نیازی به فرار HTML ندارد ، تشخیص دهد.

این دکوراتور با بسته بندی __str __ () در mark_safe () روش __html __ () را در کلاس تزئین شده تعریف می کند. اطمینان حاصل کنید که روش __STR __ () در واقع متن را بازگرداند که نیازی به فرار HTML ندارد.

django. utils. http

نسخه ای از تابع urllib. parse. urlencode () پایتون که می تواند بر روی مقادیر چندگانه و غیر رشته ای کار کند.

http_date (epoch_seconds = none) [منبع]

یک عدد نقطه شناور را که در ثانیه از زمان دوره در UTC بیان شده است ، می پذیرد و این زمان توسط Time. time. THOUPED () (). اگر روی هیچ یک تنظیم نشده باشد ، به طور پیش فرض به زمان فعلی.

یک رشته را در قالب WDY ، DD Mon Yyyy HH: MM: SS GMT.

یک رشته پایه 36 را به یک عدد صحیح تبدیل می کند.

یک عدد صحیح مثبت را به یک رشته پایه 36 تبدیل می کند.

برای استفاده در URL ها ، یک bytestering را به یک رشته Base64 رمزگذاری می کند و هرگونه علائم مساوی را از بین می برد.

یک رشته رمزگذاری شده Base64 را رمزگشایی می کند ، و علائم مساوی مساوی را که ممکن است سلب شده باشد ، اضافه می کند.

django. utils. module_loading

توابع برای کار با ماژول های پایتون.

یک مسیر ماژول نقطه ای را وارد می کند و ویژگی/کلاس تعیین شده توسط نام خانوادگی را در مسیر برمی گرداند. در صورت عدم موفقیت واردات ، وارد کننده را بالا می برد. مثلا:

برابر است با:

django. utils. safestring

توابع و کلاسهای کار با "رشته های ایمن": رشته هایی که بدون فرار بیشتر در HTML می توانند با خیال راحت نمایش داده شوند. علامت گذاری چیزی به عنوان "رشته ایمن" به این معنی است که تولید کننده رشته قبلاً شخصیت هایی را تبدیل کرده است که نباید توسط موتور HTML تفسیر شوند (به عنوان مثال ‘<’) into the appropriate entities.

یک زیر کلاس STR که به طور خاص به عنوان "ایمن" مشخص شده است (نیازی به فرار بیشتر) برای اهداف خروجی HTML است.

صریحاً یک رشته را به عنوان ایمن برای اهداف خروجی (HTML) علامت گذاری کنید. شیء برگشتی را می توان در همه جا استفاده کرد که یک رشته مناسب باشد.

می توان چندین بار در یک رشته واحد نامید.

همچنین می تواند به عنوان دکوراتور استفاده شود.

برای ساختن قطعات HTML ، به طور معمول باید به جای آن از django. utils.html. format_html () استفاده کنید.

در صورت اصلاح ، String Marked Safe دوباره ناامن می شود. مثلا:

django. utils. text

نسخه ای از str. format () برای زمانی که format_string ، args و/یا kwargs حاوی اشیاء تنبل است. اولین آرگومان رشته ای است که باید فرمت شود. مثلا:

این مثال به مترجمان اجازه می دهد تا بخشی از URL را ترجمه کنند. اگر "شخص" به "شخصیت" ترجمه شود ، بیان منظم با شخصیت مطابقت دارد/(؟ P d+)/$ ، به عنوان مثال. شخصیت/ 5/.

slugify (مقدار ، Allow_unicode = false) [منبع]

یک رشته را به یک slug URL توسط:

  1. تبدیل به ASCII اگر Allow_Unicode نادرست است (پیش فرض).
  2. تبدیل به حروف کوچک.
  3. از بین بردن شخصیت هایی که الفبایی نیستند ، تأکید می کنند ، هیفن ها یا فضای سفید.
  4. تعویض هر نوع فضای سفید یا خط های مکرر با خطوط منفرد.
  5. از بین بردن فضای سفید و دنباله دار ، خطوط و زیربناها.

اگر می خواهید کاراکترهای یونیکد را مجاز کنید، اجازه دهید اجازه_unicode=True. مثلا:

django. utils. timezone ¶

نمونه tzinfo که UTC را نشان می دهد.

از نسخه 4. 1 منسوخ شده است: این نام مستعار datetime. timezone. utc است. مستقیماً از datetime. timezone. utc استفاده کنید.

یک نمونه tzinfo را برمی گرداند که یک منطقه زمانی را با یک افست ثابت از UTC نشان می دهد.

افست یک datetime. timedelta یا یک عدد صحیح دقیقه است. از مقادیر مثبت برای مناطق زمانی در شرق UTC و مقادیر منفی برای غرب UTC استفاده کنید.

یک نمونه tzinfo را برمی گرداند که منطقه زمانی پیش فرض را نشان می دهد.

نام منطقه زمانی پیش فرض را برمی گرداند.

یک نمونه tzinfo را برمی گرداند که منطقه زمانی فعلی را نشان می دهد.

نام منطقه زمانی فعلی را برمی گرداند.

منطقه زمانی فعلی را تنظیم می کند. آرگومان منطقه زمانی باید نمونه ای از زیر کلاس tzinfo یا نام منطقه زمانی باشد.

این یک مدیر زمینه پایتون است که منطقه زمانی فعلی را هنگام ورود با activate() تنظیم می کند و منطقه زمانی فعال قبلی را در هنگام خروج بازیابی می کند. اگر آرگومان منطقه زمانی None باشد، منطقه زمانی فعلی در هنگام ورود با deactivate() تنظیم نمی شود.

override به عنوان دکوراتور عملکرد نیز قابل استفاده است.

زمان محلی (مقدار = هیچ، منطقه زمانی = هیچکدام)¶

یک ساعت تاریخ آگاه را به یک منطقه زمانی دیگر، به طور پیش فرض منطقه زمانی فعلی، تبدیل می کند.

هنگامی که مقدار حذف می شود، به طور پیش فرض روی now() قرار می گیرد.

این تابع در زمان های تاریخ ساده کار نمی کند. به جای آن از make_aware() استفاده کنید.

تاریخ محلی (مقدار = هیچ، منطقه زمانی = هیچکدام)¶

از localtime() برای تبدیل یک datetime آگاه به date() در یک منطقه زمانی متفاوت، به طور پیش فرض منطقه زمانی فعلی استفاده می کند.

هنگامی که مقدار حذف می شود، به طور پیش فرض روی now() قرار می گیرد.

این تابع در زمان های تاریخ ساده کار نمی کند.

تاریخ زمانی را برمی گرداند که نشان دهنده نقطه زمانی فعلی است. دقیقاً آنچه برگردانده می شود به مقدار USE_TZ بستگی دارد:

  • اگر USE_TZ نادرست باشد، این یک تاریخ ساده (یعنی یک تاریخ بدون منطقه زمانی مرتبط) خواهد بود که نشان دهنده زمان فعلی در منطقه زمانی محلی سیستم است.
  • اگر USE_TZ True باشد، این یک تاریخ آگاه خواهد بود که نشان دهنده زمان فعلی در UTC است. توجه داشته باشید که now() همیشه زمان ها را بدون در نظر گرفتن مقدار TIME_ZONE به UTC برمی گرداند. می توانید از localtime() برای دریافت زمان در منطقه زمانی فعلی استفاده کنید.

اگر مقدار آگاه باشد، True، اگر ساده لوح باشد، False را برمی گرداند. این تابع فرض می کند که مقدار یک datetime است.

اگر مقدار ساده باشد، True، اگر آگاه باشد، False را برمی گرداند. این تابع فرض می کند که مقدار یک datetime است.

make_aware ( مقدار , منطقه زمانی = هیچ , is_dst = هیچ )¶

تاریخ زمانی آگاه را برمی گرداند که همان نقطه زمانی را به عنوان مقدار در منطقه زمانی نشان می دهد، مقدار تاریخ یک زمان ساده است. اگر منطقه زمانی روی هیچ تنظیم شده باشد، به طور پیش فرض روی منطقه زمانی فعلی تنظیم می شود.

از نسخه 4. 0 منسوخ شده است: هنگام استفاده از pytz، اگر بخواهید ارزش را در طول انتقال DST که دو بار تکرار می شود (هنگام بازگشت از DST) از ارزش آگاه کنید، استثناء pytz. AmbiguousTimeError ایجاد می شود. تنظیم is_dst به True یا False با انتخاب اینکه زمان به ترتیب قبل از انتقال یا پس از انتقال باشد، از استثنا جلوگیری می کند.

هنگام استفاده از Pytz، استثناء pytz. NonExistentTimeError ایجاد می شود اگر بخواهید در طول یک انتقال DST ارزش را آگاه کنید به طوری که زمان هرگز رخ ندهد. به عنوان مثال، اگر ساعت 2:00 در طول انتقال DST نادیده گرفته شود، تلاش برای آگاه کردن ساعت 2:30 در آن منطقه زمانی یک استثنا ایجاد می کند. برای جلوگیری از آن می توانید از is_dst استفاده کنید تا مشخص کنید که make_aware() چگونه باید چنین زمانی ناموجود را تفسیر کند. اگر is_dst=True باشد، زمان فوق به عنوان ساعت 2:30 DST (معادل 1:30 به وقت محلی) تفسیر می شود. برعکس، اگر is_dst=False زمان به عنوان ساعت استاندارد 2:30 (معادل 3:30 به وقت محلی) تفسیر می شود.

پارامتر is_dst هنگام استفاده از پیاده سازی های منطقه زمانی غیر Pytz هیچ تاثیری ندارد.

پارامتر is_dst منسوخ شده است و در Django 5. 0 حذف خواهد شد.

یک datetime ساده را برمی گرداند که در منطقه زمانی همان نقطه زمانی را به عنوان مقدار نشان می دهد. اگر منطقه زمانی روی هیچ تنظیم شده باشد، به طور پیش فرض روی منطقه زمانی فعلی تنظیم می شود.

django. utils. translation ¶

برای بحث کامل در مورد استفاده از موارد زیر به مستندات ترجمه مراجعه کنید.

پیام را ترجمه کرده و به صورت رشته ای برمی گرداند.

پیام داده شده را به متن ترجمه می کند و آن را به عنوان یک رشته برمی گرداند.

برای اطلاعات بیشتر، نشانگرهای متنی را ببینید.

gettext_lazy ( پیام )¶ pgettext_lazy ( زمینه , پیام )¶

مانند نسخه های غیر تنبل بالا، اما از اجرای تنبل استفاده می کند.

رشته ها را برای ترجمه علامت گذاری می کند اما اکنون آنها را ترجمه نمی کند. این می تواند برای ذخیره رشته ها در متغیرهای سراسری استفاده شود که باید در زبان پایه باقی بمانند (زیرا ممکن است به صورت خارجی استفاده شوند) و بعداً ترجمه خواهند شد.

مفرد و جمع را ترجمه می کند و رشته مناسب را بر اساس عدد برمی گرداند.

مفرد و جمع را ترجمه می کند و رشته مناسب را بر اساس عدد و زمینه برمی گرداند.

ngettext_lazy ( مفرد , جمع , عدد ) [منبع] ¶ npgettext_lazy ( بافت , مفرد , جمع , عدد ) [منبع] ¶

مانند نسخه های غیر تنبل بالا، اما از اجرای تنبل استفاده می کند.

شیء ترجمه را برای یک زبان معین بدست می آورد و آن را به عنوان شیء ترجمه فعلی برای موضوع فعلی فعال می کند.

شیء ترجمه فعال در حال حاضر را غیرفعال می کند تا دوباره تماسهای _ در برابر شیء ترجمه پیش فرض حل شود ، دوباره.

هدف ترجمه فعال را به عنوان نمونه nulltranslations () تبدیل می کند. این زمانی مفید است که ما می خواهیم ترجمه های تأخیر به دلایلی به عنوان رشته اصلی ظاهر شوند.

نادیده گرفتن (زبان ، غیرفعال کردن = نادرست) [منبع]

یک مدیر متن پایتون که از django. utils. translation. activate () برای واکشی شیء ترجمه برای یک زبان معین استفاده می کند ، آن را به عنوان شیء ترجمه برای موضوع فعلی فعال می کند و زبان فعال قبلی را در خروجی فعال می کند. به صورت اختیاری ، می تواند ترجمه موقت را در خروجی با django. utils. translation. deactivate () غیرفعال کند. اگر هیچ یک را به عنوان استدلال زبان منتقل کنید ، یک نمونه nulltranslations () در متن فعال می شود.

override به عنوان دکوراتور عملکرد نیز قابل استفاده است.

بررسی می کند که آیا یک پرونده زبان جهانی برای کد زبان داده شده وجود دارد (به عنوان مثال "FR" ، "PT_BR"). این برای تصمیم گیری در مورد اینکه آیا یک زبان ارائه شده توسط کاربر در دسترس است استفاده می شود.

کد زبان انتخاب شده در حال حاضر را برمی گرداند. اگر ترجمه ها به طور موقت غیرفعال شوند (توسط غیرفعال شده_ه () یا هنگامی که هیچکدام برای نادیده گرفتن () منتقل نمی شوند ، هیچ یک را برمی گرداند.

طرح BIDI زبان منتخب را برمی گرداند:

  • false = طرح چپ به راست
  • درست = طرح راست به چپ

درخواست را برای یافتن آنچه کاربر می خواهد سیستم را نشان دهد ، تجزیه و تحلیل می کند. فقط زبانهای ذکر شده در تنظیمات. زبان ها در نظر گرفته می شوند. اگر کاربر درخواست زیربنای آن را داشته باشد که ما یک زبان اصلی داریم ، ما زبان اصلی را ارسال می کنیم.

اگر Check_Path درست باشد ، عملکرد ابتدا URL درخواست شده را بررسی می کند که آیا مسیر آن با یک کد زبان ذکر شده در تنظیم زبان ها شروع می شود.

get_supported_language_variant (lang_code ، سخت = نادرست) [منبع]

LANG_CODE اگر در تنظیم زبان ها باشد ، احتمالاً یک نوع عمومی تر را انتخاب می کند. به عنوان مثال ، اگر lang_code "es-ar" باشد و "es" به زبانهاست ، "es" بازگردانده می شود اما "es-ar" نیست.

اگر سختگیرانه نادرست باشد (پیش فرض) ، ممکن است یک نوع خاص کشور بازگردد که نه کد زبان و نه نوع عمومی آن یافت نشود. به عنوان مثال ، اگر فقط "ES-Co" به زبانها باشد ، برای LANG_CODE مانند "es" و "es-ar" بازگردانده می شود. این مسابقات اگر سختگیرانه = درست باشد ، بازگردانده نمی شوند.

اگر چیزی پیدا نشود ، ظاهر را بالا می برد.

یک نام زبان (en-us) را به یک نام محلی (en_us) تبدیل می کند.

یک الگوی جنگو را به چیزی تبدیل می کند که توسط xgettext قابل درک است. این کار را با ترجمه برچسب های ترجمه Django به دعوت های عملکرد استاندارد GetText انجام می دهد.

استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید

برچسب : نویسنده : توران میرهادی بازدید : <-PostHit-> تاريخ : شنبه 26 فروردين 1402 ساعت: 10:31