حتماً دیدهاید که در بخش عضویت بسیاری از وبسایتها برای امنیت بیشتر محدودیتهایی بر روی نام کاربری و گذرواژه وجود دارد.
میخواهیم با پایتون ۳ تابعی بنویسیم که تعدادی نام کاربری و گذرواژه دریافت کند و بر اساس قواعدی معتبر بودن آنها را بررسی کند و در نهایت لیست نامهای کاربری مجاز به عضویت را برگرداند.
قواعد زیر را برای نام کاربری و گذرواژه در نظر گرفتهایم:
quera
و codecup
را میخواهیم برای خودمان نگه داریم.
کسی مجاز به عضویت با این نامهای کاربری نیست.تابعی با نام check_registration_rules
بنویسید که نام کاربری و گذرواژهی تعدادی کاربر را مانند نمونهی
زیر دریافت کند و در خروجی لیستی از نامهای کاربری مجاز به عضویت را برگرداند.
ترتیب اعضای لیست خروجی اهمیت ندارد.
source.py
که تابع check_registration_rules
در آن قرار دارد آپلود کنید.می خواهیم برنامه ای بنویسیم که با کمک آن بتوانیم فایل های خود را مدیریت کنیم.
با توجه به نیازمندیهایی که در بالا گفته شد، یک کلاس با نام FileManager
تعریف کنید که همه متدهای جدول زیر را طبق رفتار توضیح داده شده پیادهسازی کند.
رفتار | خروجی | متد |
---|---|---|
یک پوشه جدید با نام name در آدرس address می سازد. |
- |
create_dir(name, address) |
یک فایل جدید با نام name در آدرس address ایجاد می کند . |
- |
create_file(name, address) |
یک فایل با نام name را از آدرس address حذف می کند . |
- |
delete(name, address) |
آدرس تمام فایل های با نام name را از آدرس address به بعد برمیگرداند |
List |
find(name, address) |
فایل با نام name را بازیابی می کند. |
- |
restore(name) |
create_dir
در صورت عدم وجود پوشه باید پوشه ای جدید ساخته شود در غیر این صورت نباید هیچ اتفاقی بیفتد!create_file
در صورت عدم وجود فایل باید فایلی جدید ساخته شود در غیر این صورت نباید هیچ اتفاق دیگری بیفتد!delete
در صورت عدم وجود فایل نباید هیچ اتفاقی بیفتدfind
باید یک لیست از تمام آدرس ها برگردانده شود ودر صورت عدم وجود فایلی با این نام یک لیست خالی برگردانده شود ترتیب این ادرس ها اهمیتی نداردfind
باید از آدرس موجود در آرگومانها به بعد باشد (آدرس شامل خود آرگومان نیز میباشد)
.دقت شود که ممکن است فایل در سطوح پایین تر از سطح اول نیز موجود باشد.restore
restore
فایلها به صورت متوالی و با عکس ترتیب حذف، بازیابی شوند.یک فایل Zip شامل یک فایل به نام source.py
که کلاس FileManager
در آن قرار دارد آپلود کنید.
در این سوال قصد داریم برای یک سایت تولید کارت پستال امکان فارسی کردن ارقام را بگذاریم.
شرکتی خدمات کارت پستال ارائه میدهد. این شرکت به تازگی سایتی ساختهاست که با وارد کردن متنی که میخواهید، میتوانید کارت پستال آن را به صورت html
مشاهده کنید.
اما یکی از مشکلاتی که دارد ارقام انگلیسی است. به همین دلیل تصمیم گرفتهاست که تمام ارقام انگلیسی از 0 تا 9 داخل متن را، هنگام نمایش به فارسی تبدیل کند و نمایش دهد.
پروژه اولیه را میتوانید از اینجا دانلود کنید.
ساختار پروژه به شکل زیر است:
اپ اصلی پروژه postal_card
است که داخل آن کدهایی که کارت پستال را تولید میکنند وجود دارد.
همچنین پروژه دارای یه url
اصلی است که کارت پستال را تولید میکند و آدرس آن postal_card/
است که یک پارامتر به نام text
میگیرد و مقدار آن متن داخل کارت پستال را مشخص میکند.
برای مثال آدرسهای postal_card/?text=this-is-card-postal1/
و postal_card/?text=this%20is%card-postal%20with%20spaces/
به ترتیب متنهای this-is-card-postal1
و this is card-postal with spaces
تولید میکنند.
حال وظیفهی شما تبدیل ارقام انگلیسی داخل متن به ارقام فارسی است. به عنوان مثال متن 22 شهریور روز برنامهنویس مبارک
باید به متن ۲۲ شهریور روز برنامهنویس مبارک
تبدیل شود.
اما با توجه به اینکه نمیخواهیم به کدهای view
و url
مان دست بزنیم و منطق پشت کد دستنخوره باقی بماند، شما باید تغییرات را در فایلهای templates/postal_card.html
و templatetags/filters.py
داخل اپ postal_card
قرار دهید.
در این سوال قصد داریم به کمک کتابخانه DjangoRestFramework یک RESTful API برای وبلاگ خود طراحی کنیم.
می خواهیم یک API برای وبلاگ خود طراحی کنیم به طوری که کاربران بتوانند از طریق این API پست ها و کامنت های خود را مدیریت کنند و همچنین ادمین وبلاگ بتواند به تمام فعالیت ها نظارت داشته باشد و در صورت لزوم دست به کار شده و خودی نشان دهد.
پروژه اولیه را از اینجا دانلود کنید. ساختار این پروژه به شرح زیر است:
در فایل models.py
دو مدل به شرح زیر وجود دارد:
۱. مدل Post
شامل فیلدهای زیر:
owner
title
body
created
updated
۲. مدل Comment
شامل فیلدهای زیر:
owner
body
post
created
updated
در فایل
views.py
چهار
view
به شرح زیر وجود دارد:
۱. کلاس PostList
GET
:
لیست تمام پست ها را به صورت یک خروجی
JSON
به فرمت زیر بر می گرداند.
POST
:
عنوان و متن پست را به عنوان ورودی به صورت
JSON
می پذیرد و در صورتی که کاربر از قبل لاگین کرده باشد یک پست جدید به نام این کاربر می سازد.
۲. کلاس PostDetail
GET
:
جزئیات یک پست را به صورت یک خروجی
JSON
به فرمت زیر بر می گرداند.
لیستی از لینک کامنتهای یک پست نیز در این خروجی قرار دارد.
PUT
:
عنوان و متن پست را به عنوان ورودی به صورت
JSON
می پذیرد و در صورتی که کاربر مالک پست و یا ادمین باشد پست را ویرایش می کند.
DELETE
:
در صورتی که کاربر مالک پست و یا ادمین باشد پست را حذف می کند.
۳. کلاس CommentDetail
GET
:
جزئیات یک کامنت را به صورت یک خروجی
JSON
به فرمت زیر بر می گرداند.
لینک پست مربوطه نیز در این خروجی قرار دارد.
PUT
:
متن کامنت را به عنوان ورودی به صورت
JSON
می پذیرد و در صورتی که کاربر مالک کامنت و یا ادمین باشد کامنت را ویرایش می کند.
DELETE
:
در صورتی که کاربر مالک کامنت و یا ادمین باشد کامنت را حذف می کند.
۴. کلاس AddComment
POST
:
متن کامنت را به عنوان ورودی به صورت
JSON
می پذیرد و در صورتی که کاربر از قبل لاگین کرده باشد یک کامنت جدید به نام این کاربر و برای پست انتخاب شده می سازد.
اما کارهایی که شما باید تو این پروژه انجام بدید:
شما باید در دو فایل
serializers.py
و
permissions.py
کلاس هایی که در این
view
ها استفاده شده و پیاده سازی نشده اند را طوری پیاده سازی کنید که
view
ها طبق توضیحات داده شده عمل کنند.
app/serializers.py
و app/permissions.py
هستید.
اگر تغییری در سایر فایلها ایجاد کنید، این تغییرات نادیده گرفته خواهد شد.view
ها یک ورودی به فرمت
json
میپذیرند، منظور فرمتی به صورت زیر است: