اگر نیاز به استفاده از چیزی شبیه به برچسب الگوی URL در کد خود دارید ، Django عملکرد زیر را ارائه می دهد:
معکوس (نامگذاری ، urlconf = هیچ ، args = none ، kwargs = none ، current_app = none)
نام مشاهده می تواند یک نام الگوی URL یا شیء دیدنی باشد. به عنوان مثال ، با توجه به URL زیر:
برای معکوس کردن URL می توانید از هر یک از موارد زیر استفاده کنید:
اگر URL استدلال ها را بپذیرد ، ممکن است آنها را در استدلال ها تصویب کنید. مثلا:
شما همچنین می توانید به جای استدلال ، Kwargs را عبور دهید. مثلا:
args و kwargs نمی توانند به طور همزمان به معکوس () منتقل شوند.
اگر هیچ مسابقه ای انجام نشود ، معکوس () استثناء NoreVersematch را ایجاد می کند.
عملکرد معکوس () می تواند تنوع زیادی از الگوهای بیان منظم برای URL ها را معکوس کند ، اما همه ممکن نیست. محدودیت اصلی در حال حاضر این است که این الگوی نمی تواند شامل گزینه های جایگزین با استفاده از کاراکتر عمودی ("|") باشد. شما کاملاً با خوشحالی می توانید از چنین الگویی برای تطبیق در برابر URL های ورودی و ارسال آنها به نماها استفاده کنید ، اما نمی توانید چنین الگوهای را معکوس کنید.
آرگومان فعلی_پ به شما امکان می دهد تا به حل کننده ای که نشان دهنده برنامه ای است که نمای فعلی در آن تعلق دارد ، ارائه دهید. این آرگومان فعلی_پ به عنوان یک اشاره برای حل و فصل نام های نام برنامه در URL در موارد خاص برنامه ، با توجه به استراتژی وضوح URL URL استفاده می شود.
آرگومان URLCONF ماژول urlConf است که حاوی الگوهای URL برای استفاده برای معکوس است. به طور پیش فرض ، از urlconf ریشه برای موضوع فعلی استفاده می شود.
رشته برگردانده شده توسط معکوس () در حال حاضر urlquoted است. مثلا:
استفاده از رمزگذاری بیشتر (مانند urllib. parse. quote ()) برای خروجی معکوس () ممکن است نتایج نامطلوب ایجاد کند.
Reverse_Lazy ()
نسخه ای که به طور تنبل ارزیابی شده از معکوس () ارزیابی شده است.
Reverse_Lazy (نامگذاری ، urlconf = هیچ ، args = none ، kwargs = none ، current_app = none) ¶
قبل از بارگیری URLCONF پروژه ، برای استفاده از معکوس URL مفید است. برخی موارد متداول که این عملکرد ضروری است عبارتند از:
- ارائه یک URL معکوس به عنوان ویژگی URL از یک دیدگاه مبتنی بر کلاس عمومی.
- تهیه یک URL معکوس به یک دکوراتور (مانند استدلال login_url برای django. contrib. auth. decorators. permission_required () دکوراتور).
- ارائه URL معکوس به عنوان یک مقدار پیش فرض برای یک پارامتر در امضای یک عملکرد.
برطرف کردن() ¶
از تابع Resolve () می توان برای حل مسیرهای URL به توابع نمای مربوطه استفاده کرد. این امضای زیر است:
حل (مسیر ، urlconf = هیچ)
مسیر مسیر URL است که می خواهید برطرف کنید. مانند معکوس () ، نیازی به نگرانی در مورد پارامتر URLCONF نیست. این عملکرد یک شیء حل کننده را برمی گرداند که به شما امکان می دهد در مورد URL حل شده به ابرداده های مختلف دسترسی پیدا کنید.
اگر URL برطرف نشود ، این عملکرد یک استثناء Resolver404 (یک زیر کلاس از HTTP404) ایجاد می کند.
Class insolverMatch ¶ Func
عملکرد نمایش که برای خدمت به URL استفاده می شود
استدلالهایی که به عملکرد نمای منتقل می شود ، همانطور که از URL جدا شده است.
تمام آرگومان های کلیدی که به عملکرد مشاهده منتقل می شوند ، یعنی saptured_kwargs و upre_kwargs.
استدلال های کلمه کلیدی ضبط شده که به عملکرد مشاهده منتقل می شوند ، همانطور که از URL جدا شده است.
آرگومان های کلمه کلیدی اضافی که به عملکرد مشاهده منتقل می شوند.
نام الگوی URL که با URL مطابقت دارد.
مسیر الگوی URL تطبیق.
به عنوان مثال ، اگر مسیر ("کاربران //" ،.) الگوی تطبیق باشد ، مسیر شامل "کاربران //" خواهد بود.
لیست الگوهای URL که قبل از URL امتحان شده است یا با یک یا الگوهای موجود خسته شده است.
فضای نام برنامه برای الگوی URL که با URL مطابقت دارد.
لیست اجزای فضای نام شخصی در فضای نام کامل برنامه برای الگوی URL که با URL مطابقت دارد. به عنوان مثال ، اگر APP_NAME "FOO: BAR" باشد ، آنگاه APP_NAMEs ["foo" ، "نوار" خواهد بود.
فضای نام نمونه برای الگوی URL که با URL مطابقت دارد.
لیست مؤلفه های فضای نام فردی در فضای نام کامل برای الگوی URL که با URL مطابقت دارد. یعنی اگر فضای نام foo: bar باشد ، پس مکانهای نام ["foo" ، "نوار" خواهند بود.
در صورت وجود ، نام نمای با URL ، از جمله فضای نام.
سپس یک شیء حل کننده می تواند مورد بازجویی قرار گیرد تا اطلاعاتی در مورد الگوی URL که با یک URL مطابقت دارد ارائه شود:
یک شیء ResolverMatch نیز می تواند به یک سه گانه اختصاص یابد:
یکی از استفاده های احتمالی از Resolve () آزمایش این است که آیا یک دیدگاه خطای HTTP404 را قبل از هدایت به آن افزایش می دهد:
get_script_prefix ()
به طور معمول ، همیشه باید از معکوس () برای تعریف URL در برنامه خود استفاده کنید. با این حال ، اگر برنامه شما بخشی از خود سلسله مراتب URL را ایجاد کند ، ممکن است گاهی اوقات نیاز به تولید URL داشته باشید. در این حالت ، شما باید بتوانید URL پایه پروژه Django را در سرور وب خود پیدا کنید (به طور معمول ، معکوس () از این امر برای شما مراقبت می کند). در این حالت ، می توانید با get_script_prefix () تماس بگیرید ، که قسمت پیشوند اسکریپت URL را برای پروژه django خود باز می گرداند. اگر پروژه Django شما در ریشه سرور وب خود قرار دارد ، این همیشه "/" است.
اطلاعات اضافی
پشتیبانی از Django!
- دانیل ون فلمن برای حمایت از توسعه Django به بنیاد نرم افزار Django اهدا کرد. امروز اهدا کنید!
فهرست
مرور کردن
- قبلی: داده های یونیکد
- بعدی: توابع django. urls برای استفاده در urlconfs
تو اینجایی:
استراتژیهای اسکالپ...
ما را در سایت استراتژیهای اسکالپ دنبال می کنید
برچسب :
نویسنده : ناصر تقوایی
بازدید : <-PostHit->
تاريخ : پنجشنبه
8 تير
1402 ساعت: 21:18