Forwarded from دستاوردهای یادگیری عمیق(InTec)
آپدیت کردن ورژن توی پایتون این نیست که فقط ببینید چی جدید اومده و استفاده کنید یا حتی بدتر ازون فقط سورس کدی که مثلا روی py3.2 بود رو بیارید روی py3.11 اجرا بگیرید (فقط در حدی که اگر اروری بود برطرف کنید)
برای همین خیلی از بچههای dev manager / senior کمی مقاومت دارند در برابر ورژن پایتون عوض کردن به بهونه آپدیت.
برای خودم حالا که دارم میرم سراغ 3.11 سخنرانیهای مختلفی رو گوش میدم.
از core developer های پایتون و البته Guido van Rossum راجب پایتون 3.11 و تغییراتش شنیدم و بسیار تاکید شده که اگر python 3.11 به درستی استفاده نشه میتونه از 3.8 کندتر هم باشه
برای مثال (مثال خالق پایتون) : عملگر add توی پایتون نسخه 3.11؛ اینجوری هست که اگر شما تا الان ۲ بار این رو برای int استفاده کردید دفعه سوم دیگه type check انجام نمیده که مطمئن بشه هر ۲ سمت عملگر از int باشه و فقط انجامش میده اگر درست باشه خروجی میگیره و اگر اشتباه باشه بر میگرده روی چیزی که قبلا بود؛ ۲ طرف رو چک میکنه و بعد add رو مناسب اون انجام میده.
با این حساب اگر لیستی از float - int - str دارید بهتره اینطوری نباشه که هی بین این موارد چرخشی کار انجام بشه؛
شاید حتی بهتر باشه ۳ تا لیست (یا قشنگر ۳ تا array) با دیتاتایپ ثابت براشون در نظر بگیرید.
این فقط ۱ مثال از تغییرات زیادی بود که وجود داره
در انتها باید بگم :
دیدن همچین ارائههایی میتونه خیلی کمک کننده باشه
Youtube Link
برای همین خیلی از بچههای dev manager / senior کمی مقاومت دارند در برابر ورژن پایتون عوض کردن به بهونه آپدیت.
برای خودم حالا که دارم میرم سراغ 3.11 سخنرانیهای مختلفی رو گوش میدم.
از core developer های پایتون و البته Guido van Rossum راجب پایتون 3.11 و تغییراتش شنیدم و بسیار تاکید شده که اگر python 3.11 به درستی استفاده نشه میتونه از 3.8 کندتر هم باشه
برای مثال (مثال خالق پایتون) : عملگر add توی پایتون نسخه 3.11؛ اینجوری هست که اگر شما تا الان ۲ بار این رو برای int استفاده کردید دفعه سوم دیگه type check انجام نمیده که مطمئن بشه هر ۲ سمت عملگر از int باشه و فقط انجامش میده اگر درست باشه خروجی میگیره و اگر اشتباه باشه بر میگرده روی چیزی که قبلا بود؛ ۲ طرف رو چک میکنه و بعد add رو مناسب اون انجام میده.
با این حساب اگر لیستی از float - int - str دارید بهتره اینطوری نباشه که هی بین این موارد چرخشی کار انجام بشه؛
شاید حتی بهتر باشه ۳ تا لیست (یا قشنگر ۳ تا array) با دیتاتایپ ثابت براشون در نظر بگیرید.
این فقط ۱ مثال از تغییرات زیادی بود که وجود داره
در انتها باید بگم :
دیدن همچین ارائههایی میتونه خیلی کمک کننده باشه
Youtube Link
YouTube
How we are making Python 3.11 faster - presented by Mark Shannon
EuroPython 2022 - How we are making Python 3.11 faster - presented by Mark Shannon
[The Auditorium on 2022-07-14]
The "Faster CPython" project aims to speed up Python, specifically CPython, by a large factor over the next few releases.
The first release…
[The Auditorium on 2022-07-14]
The "Faster CPython" project aims to speed up Python, specifically CPython, by a large factor over the next few releases.
The first release…
👍15❤1👌1
لینک زیر یکی از سرگرمی های منه. به نظرم بد نیست به جای رفرش زدن ورزش3 اینو رفرش کنم 😂
https://stackoverflow.com/questions/tagged/django
https://stackoverflow.com/questions/tagged/django
Stack Overflow
Newest 'django' Questions
Stack Overflow | The World’s Largest Online Community for Developers
👍15
جنگولرن
✅ چند سطر از کتاب جنگو دیزاین پترن بعضی وقتها ممکنه مدل های ما کدشون زیاد بشه (چاق بشن) اگه چندتا مدل توی یه فایل داشته باشیم میتونیم برای هر کدوم یک فایل مجزا ایجاد کنیم و برای اینکه مثل قبل مثلا بنویسیم import models.Post از فایل __init__.py کمک میگیریم.
بعضی وقتها ممکنه مدل های ما کدشون زیاد بشه (چاق بشن)
اگه چندتا مدل توی یه فایل داشته باشیم میتونیم برای هر کدوم یک فایل مجزا ایجاد کنیم
و برای اینکه مثل قبل مثلا بنویسیم import models.Post از فایل __init__.py کمک میگیریم.
منبع در داکیومنت جنگو:
https://docs.djangoproject.com/en/4.1/topics/db/models/#organizing-models-in-a-package
اگه چندتا مدل توی یه فایل داشته باشیم میتونیم برای هر کدوم یک فایل مجزا ایجاد کنیم
و برای اینکه مثل قبل مثلا بنویسیم import models.Post از فایل __init__.py کمک میگیریم.
منبع در داکیومنت جنگو:
https://docs.djangoproject.com/en/4.1/topics/db/models/#organizing-models-in-a-package
👍7
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
>>> s = 'سایر رسانه ها,'
>>> s.split(',')
['سایر رسانه ها', '']
>>> list(filter(None, s.split(',')))
['سایر رسانه ها']
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Forwarded from Python for Data Science
🔺 حذف استرینگ خالی در split
😊 Fast and clean
🔎 @py4ds
>>> s = 'abc,'
>>> s.split(',')
['abc', '']
>>> [item for item in s.split(',') if item]
['abc']
😊 Fast and clean
🔎 @py4ds
👍7👏1
Forwarded from Python for Data Science
🎯یه مقایسه روی این دوتا روش داشته باشیم
پست ریپلای و این پست
🔺به طور کلی استفاده از تابع فیلتر به همراه lambda میتونه سرعت رو بیاره پایین
اما اینجا خبری از lambda نیست پس نتیجه هم احتمالا کند نیست
یه بررسی اجمالی داشتم روی حالتهای مختلف:
حالتی که خودم توی کانال گذاشتم هم سریع هست هم تمیز اما حالتی که دوستمون نوشتن برای مواردی که رشته طولانی و تعداد splitها زیاد بشه میتونه کمی(شاید حدود کمتر از ۲-۳ درصد) سریعتر باشه
🔺 توجه کنید که این یه حالت خاص هست و خود پایتون هم توصیه میکنه که اگر نیاز به لیست هست بهتره از list comprehension (روش اول) استفاده بشه
❗️به طور کلی بهتره اگر نیاز به لیست ندارید کد رو طوری بنویسید که با جنریتور(خروجی مستقیم filter,map,...) کار کنه؛ اینطوری حالت ایدهآل هست!
🔎 @py4ds
پست ریپلای و این پست
🔺به طور کلی استفاده از تابع فیلتر به همراه lambda میتونه سرعت رو بیاره پایین
اما اینجا خبری از lambda نیست پس نتیجه هم احتمالا کند نیست
یه بررسی اجمالی داشتم روی حالتهای مختلف:
حالتی که خودم توی کانال گذاشتم هم سریع هست هم تمیز اما حالتی که دوستمون نوشتن برای مواردی که رشته طولانی و تعداد splitها زیاد بشه میتونه کمی(شاید حدود کمتر از ۲-۳ درصد) سریعتر باشه
🔺 توجه کنید که این یه حالت خاص هست و خود پایتون هم توصیه میکنه که اگر نیاز به لیست هست بهتره از list comprehension (روش اول) استفاده بشه
❗️به طور کلی بهتره اگر نیاز به لیست ندارید کد رو طوری بنویسید که با جنریتور(خروجی مستقیم filter,map,...) کار کنه؛ اینطوری حالت ایدهآل هست!
🔎 @py4ds
Telegram
Python for Data Science
🔺 حذف استرینگ خالی در split
>>> s = 'abc,'
>>> s.split(',')
['abc', '']
>>> [item for item in s.split(',') if item]
['abc']
😊 Fast and clean
🔎 @py4ds
>>> s = 'abc,'
>>> s.split(',')
['abc', '']
>>> [item for item in s.split(',') if item]
['abc']
😊 Fast and clean
🔎 @py4ds
👍4
یه مطلب جالب از کانال @py4ds
‼️یکی از قابلیتهای پایتون این هست که شما میتونید کدهایی با سورس بسته تولید کنید اصطلاحا به این مدل کدها کدهای آبفاسکیت یا مبهم شده میگن
❗️کدی که آبفاسکیت میشه میتونه بعد از یک مدت زمان خاص اکسایر بشه و دیگه اجرا نشه یا مثلا فقط از طریق یک ماژول خاص(استارتر) اجرا بشه و ماژولهای دیگهی اون به تنهایی اجرا نشن
❓چرا کد نیاز به کد آبفاسکیت داریم؟ دلایل زیادی ممکنه وجود داشته باشه از جمله توسعه دانشهایی که برای یک شرکت درآمدزایی داره و با عمومی شدنش ممکنه به درآمد شرکت ضربه زیادی وارد بشه. دلیل دیگه اینه که ممکنه ویرایش یک کد باعث اختلال توی الگوریتم از پیش تعیین شده بشه پس برای اینکه از تغییرات جلوگیری بشه اونو آبفاسکیت میکنن
در اینکه آیا این کار مفید هست یا نه میشه بحث کرد. شاید یه جایی واقعا آبفاسکیت کردن ضررش بیشتر از سودش باشه!
اما در مورد پروژه
من قبلا با کدهایی کار میکردم که آبفاسکیت بودن و مبهم شدنشون باعث میشد نشه به متدها و خواص داخلی اشیایی که کدشون آبفاسکیت شده دسترسی داشت
در کل برای کسی که داره از یک کد آبفاسکیت شده استفاده میکنه هیچ چیزی عذاب آور تر از این نیست که بعد از دات چیزی رو نبینه🤯
این پروژه دقیقا چیه؟
یک قالب هست برای کدهایی که قراره آبفاسکیت بشن و در اختیار دیگران قرار بگیرن🫤
چطوری کار میکنه؟
شما باید کدتون رو در قالب یک پکیج پایتونی آماده کنید! یکی از مهمترین بخشهای این کار هم نوشتن فایل setup.py هست😮
👈کد خودتون رو میتونید توی یه پوشه مشابه چیزی که میبینید template/src_pkg بذارید
🫵یادتون باشه که یه پروژه خوب پروژهای هست که بشه متدها و توابع داخلیاش رو هم دید پس بهتره که یه پوشه مثل template/stub_pkg هم داشته باشید و توی اون هم یه فایل setup.py برای پکیج stub بذارید
پکیج stub چیه؟
توصیه میکنم برای درک بهتر pep561 رو بخونید.
خلاصه: این یک پکیج شامل فایلهایی مشابه با ساختار پروژه هست که هیچ کد قابل اجرایی توش نیست و صرفا یک سری فایل با پسوند .pyi توش هست که نام تمام ساختارهایی مثل توابع و کلاسها و همچنین نام و نوع پارامترهای ورودی و نوع خروجی اونها با استفاده از type hinting تعریف شده!
تمام LSP(Language Server Protocol) ها ابتدا دنبال فایلهای .pyi میگردن و ساختار پروژه رو از روی اون به کاربر نشون میدن؛ اگر چنین فایلی وجود نداشت میرن سراغ فایل .py
🫴پس اینجا یه امکان خوب داریم تا ساختار پروژه رو(بدون کدهای داخلی) توش نشون بدیم!
من بلد نیستم فایل .pyi رو بنویسم چیکار کنم؟
پکیج mypy توسط بزرگان پایتون از جمله خود آقای روسوم در حال توسعه هست این پکیج ابزاری(stubgen) داره که میتونید باهاش این فایلها رو ایجاد کنید🤗
تهش رو بگو خسته شدیم!
هیچی دیگه این پروژه ۲ تا پکیج whl براتون میسازه یکی پکیج اصلی شما به صورت آبفاسکیت هست و دیگری هم پکیج stub که هر دو رو میشه با pip نصب کرد
🤌خوبیش اینه که حداقل کد آبفاسکیت رو میشه ورژن زد و روی مخزنهای pipطور، نگهداری کرد و اینکه تغییرات ساختاری اون رو هم با پکیج stub دید!
✅ پکیج pyarmor میتونه کدهای جنگو رو هم آبفاسکیت کنه
خیلی جالب هست
در نهایت یک پروژه جنگویی دارید که فقط میشه اجراش کرد و قابلیت تغییر نداره
🔎 @py4ds
‼️یکی از قابلیتهای پایتون این هست که شما میتونید کدهایی با سورس بسته تولید کنید اصطلاحا به این مدل کدها کدهای آبفاسکیت یا مبهم شده میگن
❗️کدی که آبفاسکیت میشه میتونه بعد از یک مدت زمان خاص اکسایر بشه و دیگه اجرا نشه یا مثلا فقط از طریق یک ماژول خاص(استارتر) اجرا بشه و ماژولهای دیگهی اون به تنهایی اجرا نشن
❓چرا کد نیاز به کد آبفاسکیت داریم؟ دلایل زیادی ممکنه وجود داشته باشه از جمله توسعه دانشهایی که برای یک شرکت درآمدزایی داره و با عمومی شدنش ممکنه به درآمد شرکت ضربه زیادی وارد بشه. دلیل دیگه اینه که ممکنه ویرایش یک کد باعث اختلال توی الگوریتم از پیش تعیین شده بشه پس برای اینکه از تغییرات جلوگیری بشه اونو آبفاسکیت میکنن
در اینکه آیا این کار مفید هست یا نه میشه بحث کرد. شاید یه جایی واقعا آبفاسکیت کردن ضررش بیشتر از سودش باشه!
اما در مورد پروژه
من قبلا با کدهایی کار میکردم که آبفاسکیت بودن و مبهم شدنشون باعث میشد نشه به متدها و خواص داخلی اشیایی که کدشون آبفاسکیت شده دسترسی داشت
در کل برای کسی که داره از یک کد آبفاسکیت شده استفاده میکنه هیچ چیزی عذاب آور تر از این نیست که بعد از دات چیزی رو نبینه🤯
این پروژه دقیقا چیه؟
یک قالب هست برای کدهایی که قراره آبفاسکیت بشن و در اختیار دیگران قرار بگیرن🫤
چطوری کار میکنه؟
شما باید کدتون رو در قالب یک پکیج پایتونی آماده کنید! یکی از مهمترین بخشهای این کار هم نوشتن فایل setup.py هست😮
👈کد خودتون رو میتونید توی یه پوشه مشابه چیزی که میبینید template/src_pkg بذارید
🫵یادتون باشه که یه پروژه خوب پروژهای هست که بشه متدها و توابع داخلیاش رو هم دید پس بهتره که یه پوشه مثل template/stub_pkg هم داشته باشید و توی اون هم یه فایل setup.py برای پکیج stub بذارید
پکیج stub چیه؟
توصیه میکنم برای درک بهتر pep561 رو بخونید.
خلاصه: این یک پکیج شامل فایلهایی مشابه با ساختار پروژه هست که هیچ کد قابل اجرایی توش نیست و صرفا یک سری فایل با پسوند .pyi توش هست که نام تمام ساختارهایی مثل توابع و کلاسها و همچنین نام و نوع پارامترهای ورودی و نوع خروجی اونها با استفاده از type hinting تعریف شده!
تمام LSP(Language Server Protocol) ها ابتدا دنبال فایلهای .pyi میگردن و ساختار پروژه رو از روی اون به کاربر نشون میدن؛ اگر چنین فایلی وجود نداشت میرن سراغ فایل .py
🫴پس اینجا یه امکان خوب داریم تا ساختار پروژه رو(بدون کدهای داخلی) توش نشون بدیم!
من بلد نیستم فایل .pyi رو بنویسم چیکار کنم؟
پکیج mypy توسط بزرگان پایتون از جمله خود آقای روسوم در حال توسعه هست این پکیج ابزاری(stubgen) داره که میتونید باهاش این فایلها رو ایجاد کنید🤗
تهش رو بگو خسته شدیم!
هیچی دیگه این پروژه ۲ تا پکیج whl براتون میسازه یکی پکیج اصلی شما به صورت آبفاسکیت هست و دیگری هم پکیج stub که هر دو رو میشه با pip نصب کرد
🤌خوبیش اینه که حداقل کد آبفاسکیت رو میشه ورژن زد و روی مخزنهای pipطور، نگهداری کرد و اینکه تغییرات ساختاری اون رو هم با پکیج stub دید!
✅ پکیج pyarmor میتونه کدهای جنگو رو هم آبفاسکیت کنه
خیلی جالب هست
در نهایت یک پروژه جنگویی دارید که فقط میشه اجراش کرد و قابلیت تغییر نداره
🔎 @py4ds
Python Enhancement Proposals (PEPs)
PEP 561 – Distributing and Packaging Type Information | peps.python.org
PEP 484 introduced type hinting to Python, with goals of making typing gradual and easy to adopt. Currently, typing information must be distributed manually. This PEP provides a standardized means to leverage existing tooling to package and distribute t...
🔥10👍8🤣2❤1👎1
Forwarded from رقصنده با کد (Ali KhodaieeDoost)
با احترام به همه برنامه نویسان بکاند ، لطفا هرزگاهی استانداردهای سرویسهای Rest رو مرور کنید. چیزی از ارزشهاتون کم نمیکنه.
این دو نمونه سرویس هست که استانداردهای حداقلی ، داخلش رعایت شده :
https://developer.atlassian.com/cloud/trello/rest/
https://www.postman.com/brooks81/workspace/rest-api-testing/request/21662525-93d0542b-e130-45b9-8cdc-6bcd746475e8
هیچ استانداردی الکی بوجود نیومده.
این دو نمونه سرویس هست که استانداردهای حداقلی ، داخلش رعایت شده :
https://developer.atlassian.com/cloud/trello/rest/
https://www.postman.com/brooks81/workspace/rest-api-testing/request/21662525-93d0542b-e130-45b9-8cdc-6bcd746475e8
هیچ استانداردی الکی بوجود نیومده.
👍10
Forwarded from Sadra Codes
با این وضع نت، چجوری به PyPI دسترسی داشته باشیم؟!
یه سری از بچه ها، عجیب به مشکل خوردن سر دانلود کردن از pypi. حقیقتش میخواستم ببینم اگه واقعا موضوع حاده، یه تریک بزنم سر PythonAnyWhere و بعنوان یه واسط بین ایران و pypi ازش استفاده کنیم حتی با قابلیت کش کردن پکیج ها و بهتون دسترسی بدم به راحتی دانلود کنید ولی خب مثل اینکه زیاد موضوع مهمی نیس.
با این حال، اگه هنوز دسترسی واستون مشکله، تقریبا ۷۰ درصد پکیج های pypi دارن روی گیت هاب توسعه پیدا میکنن یعنی رلیزشون اونجا هم هست. شما اگه دسترسی پایداری به گیت هاب داشته باشین میتونین بدون مشکل پکیج هاتون رو از گیت هاب (به جای pypi) دانلود کنید.
بصورت نرمال اینجوری پکیج نصب میکنیم که از pypi میگیره:
به امید روزهای بهتر. امیدوارم این پست مشکل شما رو حل کرده باشه. ❤️
یه سری از بچه ها، عجیب به مشکل خوردن سر دانلود کردن از pypi. حقیقتش میخواستم ببینم اگه واقعا موضوع حاده، یه تریک بزنم سر PythonAnyWhere و بعنوان یه واسط بین ایران و pypi ازش استفاده کنیم حتی با قابلیت کش کردن پکیج ها و بهتون دسترسی بدم به راحتی دانلود کنید ولی خب مثل اینکه زیاد موضوع مهمی نیس.
با این حال، اگه هنوز دسترسی واستون مشکله، تقریبا ۷۰ درصد پکیج های pypi دارن روی گیت هاب توسعه پیدا میکنن یعنی رلیزشون اونجا هم هست. شما اگه دسترسی پایداری به گیت هاب داشته باشین میتونین بدون مشکل پکیج هاتون رو از گیت هاب (به جای pypi) دانلود کنید.
بصورت نرمال اینجوری پکیج نصب میکنیم که از pypi میگیره:
$ pip install requestsاما با این حرکت، مستقیم رلیز رو از گیت هاب بگیرید:
$ pip install "git+https://github.com/psf/requests.git"حتی میتونید یه رلیز خاص یا یه برنچ خاص رو هم دانلود کنید:
$ pip install "git+https://github.com/psf/[email protected]"درواقع انگار نوشتیم:
$ pip install requests==2.28.1با این تفاوت که داریم از github.com میگیریم و نه pypi.org. این تریک روی gitlab.com هم فکر میکنم جواب بده.
به امید روزهای بهتر. امیدوارم این پست مشکل شما رو حل کرده باشه. ❤️
👏33👍5
✅ دو مثال تست نویسی در Django rest framework
من در حال یادگیری DRF و تست نویسی اش هستم. شما چطور؟ 🙃
https://medium.com/sulang/testing-django-rest-framework-d98279a5d3a5
https://medium.com/@ksarthak4ever/test-driven-development-tdd-in-django-and-django-rest-framework-drf-a889a8068cb7
من در حال یادگیری DRF و تست نویسی اش هستم. شما چطور؟ 🙃
https://medium.com/sulang/testing-django-rest-framework-d98279a5d3a5
https://medium.com/@ksarthak4ever/test-driven-development-tdd-in-django-and-django-rest-framework-drf-a889a8068cb7
👍8
✅ یه مطلب خلاصه و کاربردی در مورد تست نویسی در جنگو - به همراه best-practices
قسمت اول:
https://realpython.com/testing-in-django-part-1-best-practices-and-examples/
قسمت دوم:
https://realpython.com/testing-in-django-part-2-model-mommy-vs-django-testing-fixtures/
قسمت اول:
https://realpython.com/testing-in-django-part-1-best-practices-and-examples/
قسمت دوم:
https://realpython.com/testing-in-django-part-2-model-mommy-vs-django-testing-fixtures/
👍5
✅ یه مطلب خوب در مورد Fixtures در جنگو
خیلی خلاصه بخوام بگم. با fixtures میتونیم seed data از روی فایل انجام بدیم. کاربردش توی تست بیشتر به چشم میاد
https://dev.to/hussainislam/django-fixtures-seeding-databases-5ai
تشکر از @BobyCloud
خیلی خلاصه بخوام بگم. با fixtures میتونیم seed data از روی فایل انجام بدیم. کاربردش توی تست بیشتر به چشم میاد
https://dev.to/hussainislam/django-fixtures-seeding-databases-5ai
تشکر از @BobyCloud
DEV Community
Django Fixtures: seeding databases
When we create an application or project in Django, we would need to test the features of the applica...
👍3
✅ یه مثال ساده استفاده از پکیج های factory_boy و faker در پروژه هایی که با DRF پیاده سازی شدن
پکیج factory_boy به زبان ساده دیتای فیک برای تست هامون مهیا میکنه
✔️ توی داکیومنت factory_boy گفته که اولین نسخه پکیج ما مختص جنگو بوده. اما الان فریمورک های دیگه رو هم ساپورت میکنن
پکیج faker هم توی این کار میتونه بهش کمک کنه. مثلا fake.name() یه اسم به ما تحویل میده و...
https://ruddra.com/tdd-drf-factory-boy-faker/
پکیج factory_boy به زبان ساده دیتای فیک برای تست هامون مهیا میکنه
✔️ توی داکیومنت factory_boy گفته که اولین نسخه پکیج ما مختص جنگو بوده. اما الان فریمورک های دیگه رو هم ساپورت میکنن
پکیج faker هم توی این کار میتونه بهش کمک کنه. مثلا fake.name() یه اسم به ما تحویل میده و...
https://ruddra.com/tdd-drf-factory-boy-faker/
Coding Blog by Arnab Shil
Testing for Django Rest Framework with Factory Boy and Faker
“I’m not a great programmer; I’m just a good programmer with great habits.” ― Kent Beck …
👍4
✅ چند تا پست خوب در مورد جنگو از سایت hacksoft
این سایت تمرکزش فقط جنگو نیست. اما نویسنده مطالب جنگو اش واقعا کارش درسته
لینک مطالب جنگو این سایت:
https://www.hacksoft.io/category/django
این سایت تمرکزش فقط جنگو نیست. اما نویسنده مطالب جنگو اش واقعا کارش درسته
لینک مطالب جنگو این سایت:
https://www.hacksoft.io/category/django
👍9
Forwarded from BG OPC
https://GitHub.com/wsvincent/awesome-django
ریپو بدرد بخور جنگو
هر چیزی تو جنگو میخواستین از جمله cms
و کلی پکیج هایی که مث پلاگین ه
عمل میکنه
ریپو بدرد بخور جنگو
هر چیزی تو جنگو میخواستین از جمله cms
و کلی پکیج هایی که مث پلاگین ه
عمل میکنه
GitHub
GitHub - wsvincent/awesome-django: A curated list of awesome things related to Django
A curated list of awesome things related to Django - wsvincent/awesome-django
👍9
Forwarded from 🐍 Python & Raspberry 🐍 (DailyProjects)
✔️ شاید با شنیدن کلمهی ORM همهمون یاد SQLAlchamy یا Django ORM بیوفتیم، باشه اینا خیلی خوبن ولی لایبرریهای جدیدی که نوشته میشن دارن از تمام language featureهای نایس عه پایتون ۳ خصوصا 3.6 به بعد (Type Hints, F strings and async/await)
با قدرت استفاده میکنن و زیبایی خلق میکنن.
پیکولو، یکی از همین کتابخونههاست.
نویسندهی پیکولو چون از اوایل روزهای کاریش غرق در دنیای async بوده این ORM رو به صورت async first مینویسه :))
ولی میشه ازش به صورت sync هم استفاده کرد.
✔️ از دیگر ویژگیهاش
• A builtin playground, which makes learning a breeze.
• Tab completion support - works great with iPython and VSCode.
• Batteries included - a User model, authentication, migrations, an admin GUI, and more.
• Modern Python - fully type annotated.
• Make your codebase modular and scalable with Piccolo apps (similar to Django apps) 👌
میتونید ازش به عنوان یه کوئری بیلدر استفاده کنید:
# Select:
await Band.select(
Band.name
).where(
Band.popularity > 100
)
یا مثل یه ORM عادی باهاش رفتار کنید:
# To fetch an object from the database, and update it:
b = await Band.objects().get(Band.name == 'Pythonistas')
b.popularity = 10000
await b.save()
✔️ این ORM بهترین عملکرد رو با postgresql داره ولی از sqlite هم پشتیبانی میکنه و همچنین قسمت زیبای ماجرا اینه که از:
Starlette, FastAPI, BlackSheep, Xpresso and Starlite are currently supported.
هم برای ساختن web app های نایس پشتیبانی میکنه :))
🐙 https://github.com/piccolo-orm/piccolo
#m4hdi
#ORM
#library
#async
〰〰〰〰〰〰
©raspberry_python
دنبال کردن هشتگ m4hdi
دنبال کردن هشتگ orm
دنبال کردن هشتگ library
دنبال کردن هشتگ async
با قدرت استفاده میکنن و زیبایی خلق میکنن.
پیکولو، یکی از همین کتابخونههاست.
نویسندهی پیکولو چون از اوایل روزهای کاریش غرق در دنیای async بوده این ORM رو به صورت async first مینویسه :))
ولی میشه ازش به صورت sync هم استفاده کرد.
✔️ از دیگر ویژگیهاش
• A builtin playground, which makes learning a breeze.
• Tab completion support - works great with iPython and VSCode.
• Batteries included - a User model, authentication, migrations, an admin GUI, and more.
• Modern Python - fully type annotated.
• Make your codebase modular and scalable with Piccolo apps (similar to Django apps) 👌
میتونید ازش به عنوان یه کوئری بیلدر استفاده کنید:
# Select:
await Band.select(
Band.name
).where(
Band.popularity > 100
)
یا مثل یه ORM عادی باهاش رفتار کنید:
# To fetch an object from the database, and update it:
b = await Band.objects().get(Band.name == 'Pythonistas')
b.popularity = 10000
await b.save()
✔️ این ORM بهترین عملکرد رو با postgresql داره ولی از sqlite هم پشتیبانی میکنه و همچنین قسمت زیبای ماجرا اینه که از:
Starlette, FastAPI, BlackSheep, Xpresso and Starlite are currently supported.
هم برای ساختن web app های نایس پشتیبانی میکنه :))
🐙 https://github.com/piccolo-orm/piccolo
#m4hdi
#ORM
#library
#async
〰〰〰〰〰〰
©raspberry_python
دنبال کردن هشتگ m4hdi
دنبال کردن هشتگ orm
دنبال کردن هشتگ library
دنبال کردن هشتگ async
GitHub
GitHub - piccolo-orm/piccolo: A fast, user friendly ORM and query builder which supports asyncio.
A fast, user friendly ORM and query builder which supports asyncio. - piccolo-orm/piccolo
🔥9👍2
Forwarded from دستاوردهای یادگیری عمیق(InTec)
برای همه دوستان چه تازه کار چه حرفهای (که نحوه عملکرد رو نمیدونند)
هرچیزی رو pip install نزنید
هر پکیجی رو استفاده نکنید
این جمله ادامه داره : "برای هر چیزی توی پایتون ی پکیج وجود داره" بله وجود داره ولی ادامهاش مهمتره (شما حق نصبش رو ندارید.
انقدر ادامه این جمله استفاده نشده که چندسالی هست ما توی شرکت از Docker و ... برای حتی محیط توسعه استفاده میکنیم (به لطف vscode که دیگه راحتتر هم شده)
دلیل خوبی هم داریم :
pip (pypi.org)
هیچ چک امنیتی روی کدها نداره و شما هرچیزی رو میتونید بعنوان پکیج ارسال کنید
برای همین نباید از هر کتابخونهای استفاده کنید.
اگر کتابخونه معروف نیست (چندنفر توسعه دهنده نداره) حتما سورس کدهاش رو بخونید و ترجیحا خودتون به اندازه نیاز بازنویسی کنید؛ یا اینکه روی همون ورژن خاصی که بررسی کردید بمونید و در زمان نیاز به آپدیت پکیج سورس نسخه جدید رو مجددا بررسی کنید.
(این شرایط برای باقی زبانهای این تیپی هم وجود داره)
خلاصه که ی پکیج میتونه شامل :
Keylogger, Trojan, ....
هم باشه؛ در صورت نفوذ دولوپر شخصی هست که باید پاسخگو باشه.
هرچیزی رو pip install نزنید
هر پکیجی رو استفاده نکنید
این جمله ادامه داره : "برای هر چیزی توی پایتون ی پکیج وجود داره" بله وجود داره ولی ادامهاش مهمتره (شما حق نصبش رو ندارید.
انقدر ادامه این جمله استفاده نشده که چندسالی هست ما توی شرکت از Docker و ... برای حتی محیط توسعه استفاده میکنیم (به لطف vscode که دیگه راحتتر هم شده)
دلیل خوبی هم داریم :
pip (pypi.org)
هیچ چک امنیتی روی کدها نداره و شما هرچیزی رو میتونید بعنوان پکیج ارسال کنید
برای همین نباید از هر کتابخونهای استفاده کنید.
اگر کتابخونه معروف نیست (چندنفر توسعه دهنده نداره) حتما سورس کدهاش رو بخونید و ترجیحا خودتون به اندازه نیاز بازنویسی کنید؛ یا اینکه روی همون ورژن خاصی که بررسی کردید بمونید و در زمان نیاز به آپدیت پکیج سورس نسخه جدید رو مجددا بررسی کنید.
(این شرایط برای باقی زبانهای این تیپی هم وجود داره)
خلاصه که ی پکیج میتونه شامل :
Keylogger, Trojan, ....
هم باشه؛ در صورت نفوذ دولوپر شخصی هست که باید پاسخگو باشه.
👍23🤔3