ترفندهای برنامه‌نویسی
163 subscribers
27 photos
3 videos
22 files
615 links
Download Telegram
با سلام خدمت همه‌ی دوستانی که عضو میشن
در این کانال سعی میکنم از تجربیات خودم و همه‌ی بزرگوارانی که لطف میکنن و مطالب مفید خودشون رو در اختیار میذارن پست‌هایی بنویسم که هم برای خودم یه مرجع بسازم و هم برای شما دوستان
با ارسال نظرات و اصلاح موارد اشتباه یا ناقص به همه‌ی اعضا کمک خواهید کرد.
سپاس
@programming_tricks
base_site.html
1.6 KB
#ترجمه‌ی‌صفحه‌ادمین
برای اینکه یه دکمه توی پنل ادمین جنگو باشه که بشه اونجا تغییر زبان داشته باشیم، یه راهش اکستند کردن فایل بیس اچ‌تی‌ام‌ال ادمین هست، به این روش:
اول توی پوشه‌ی templates یه پوشه به اسم admin میسازید و فایل زیر رو داخلش قرار میدین و تمام.
(با جاوااسکریپت خالی نوشته شده روی همه مرورگرها کار میکنه).
*چندتا چیز اضافی هم داخل این فایل هست.
اضافه کردن favico یا همون آیکون کوچولو کنار اسم سایت توی تب مرورگر.
اگر استایل راست به چپ داشته باشین کافیه آدرسی که توی شرط LANGUAGE_BIDI هست رو اصلاح کنید.
آدرس فایلهای لازم برای CKEditor رو هم گذاشتم.
@programming_tricks
base.html
1.8 KB
توی جنگو برای کدنویسی کمتر میتونیم یه فایل اچ‌تی‌ام‌ال extend کنیم.
میدونید که هر صفحه اچ‌تی‌ام‌ال باید شامل تگ‌های html, header, body باشه و همین‌طور استایل‌ها و جاوااسکریپت های زیادی ممکنه بین چندتا صفحه مشترک باشه.
خب توی جنگو با استفاده از blockها و البته extends میشه یه فایل که معمولا بهش میگن base نوشت، و از اون همه کد تکراری جلوگیری کرد.
@programming_tricks
list.html
1.3 KB
اینجا بیس رو اکستند کرده
@programming_tricks
alert.html
839 B
یکی از کامپوننت‌های جالب که استفاده کردنش به زیبایی کار اضافه میکنه همین فایل هست.
با استفاده از کتابخانه messages خود جنگو میشه پیغامهایی برای یوزر ارسال کرد، این فایل برای نمایش اون پیامها در تمپلیت استفاده میشه.
نکته‌ای دیگه‌ش استفاده از include هست. این فایل توی base.html اسمش include شده.
@programming_tricks
pagination.html
4.6 KB
از دیگر کامپوننت های اچ‌تی‌ام‌الی که میشه یبار نوشت، ولی چندین بار توی فایلها و صفحات مختلف ازش استفاده کرد، pagination هست.
این فایلی که اینجا هست، بر اساس همون توضیحات داکیومنت جنگو هست ولی با یک فرق بسیار مهم!
اونیکه توی داک جنگو هست، برای همه‌ی صفحات شماره میذاره که یعنی اگر ۱۰۰ تا هم بشه، همه‌ی از یک تا صد رو براش دکمه میذاره و صفحه‌ی شما زشت میشه.
ولی اینجا این فایل آماده شده تا صفحه اول، آخر و چندتا شماره نسبت به صفحه‌ی فعلی که یوزر میبینه رو نمایش بده.
@programming_tricks
سلام به شما

https://django-simple-captcha.readthedocs.io/en/latest/usage.html
یه پکیج جالب پیدا کردم، کارش اینه که captcha درست کنه.
برای لاگین فرم پنل ادمین هم اضافه‌ش کردم، به این صورت:
توی admin.py یه اپ که ساختم برای کاستوم کردن مدل یوزر(که بعدا این رو هم یک متنی راجع بهش مینویسم). این ها رو اضافه کردم.
ولی شما میتونید توی admin.py هر اپ دیگری هم اینکار رو بکنید.

admin.autodiscover()
admin.site.login = custom_views.CustomLoginView.as_view()

اینجا custom_views یه فایل views هست توی یه اپ که داخلش این کلاس قرار داره:

from django.contrib.auth.views import LoginView
from django.contrib.messages.views import SuccessMessageMixin

from . import forms


class CustomLoginView(SuccessMessageMixin, LoginView):
template_name = 'admin/login-1.html'
success_message = ('خوش آمدید، ورود شما موفقیت آمیز بود.')
authentication_form = forms.CustomLoginForm

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["username"] = self.request.user.username
return context

اون فرم هم این بوده:

from captcha.fields import CaptchaField
from django.contrib.auth.forms import AuthenticationForm


class CustomLoginForm(AuthenticationForm):
captcha = CaptchaField()

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

<div class="form-row">
{{ form.captcha.errors }}
{{ form.captcha.label_tag }}
{{ form.captcha }}
</div>

به همین آسونی میشه صفحه لاگین پنل ادمین رو دستکاری کرد و البته یه کپچای کوچیک هم بهش اضافه کرد.
@programming_tricks
کتاب‌های رایگان برنامه‌نویسی پایتون:
- Object Oriented Design in Python
- Wikibooks' Non-Programmers Tutorial for Python 3
- The Official Python Tutorial
- A Byte of Python (Swaroop C H.)
- Problem Solving with Algorithms and Data Structures using python (Brad Miller and David Ranum)
- Dive into Python 3
- Invent Your Own Computer Games With Python (Al Sweigart)
- Making Games with Python & Pygame (Albert Sweigart)
- Natural Language Processing with Python (Steven Bird, Ewan Klein, and Edward Loper)
- Python Bibliotheca
- Python for Fun (Chris Meyers)
- Snake Wrangling For Kids (Jason R. Briggs)
- Think Python (PDF file) (Allen Downey)
- Think Python 3 (Allen Downey)
- Automate the Boring Stuff with Python (Al Sweigart)
- Python® Notes for Professionals book(GoalKicker)
- Python Practice Book(Anand Chitipothu)

آموزش‌های تعاملی پایتون:
- Coursera - Online course for introduction to interactive Python programming
- CheckiO - A game world you can explore, using your Python programming skills
- PyCharm Edu - A desktop application that offers interactive Python learning
- Interactive Python - Includes a modified, interactive version of How to Think Like a Computer Scientist

دوره‌های ویدئویی رایگان:
- Python Basics (Sentdex)
- Intermediate Python Fundamentals (Sentdex)
- Sockets Tutorial with Python 3 (Sentdex)
- Python Requests (Pretty Printed)
- Python 3 Tutorial for Begginers (The Net Ninja)
- Python Tutorials (Corey Schafer)
- Python OOP Tutorials - Working with Classes (Corey Schafer)


کتاب‌های فارسی رایگان برنامه‌نویسی پایتون:
- تفکر پایتونی ( Think Python )
- کتاب آزاد آموزش پایتون ( Coderz )

دوره‌های ویدئویی فارسی:
- آموزش زبان پایتون (ParsClick)
- آموزش برنامه نویسی با پایتون (GoToClass, جادی)
- برنامه‌نویسی با پایتون (پیشرفته) (Maktabkhooneh, جادی) 💰
لیست پلاگین‌ها و تنظیمات vscode برای برنامه‌نویسی و پایتون و جنگو و ویو-جی‌اس
احتمالا تنظمیات بهتری هم سراغ دارین و خب لطف میکنید اگر به اشتراک بذارید تا مطلب رو بروز رسانی کنم.
توی این لینک همه‌ی پلاگین‌ها و تنظیمات هستن:
https://gist.github.com/mh-firouzjaah/56bd7683936112c52131aae637815df3
برای اینکه تنظیمات رو وارد کنید توی وی‌اس‌کد به قسمت settings برید و بعد توی لیست دنبال Edit in settings.json بگردین و با کلیک روش وارد یه فایل جیسون میشین، تنظیمات رو اونجا کپی کنید.
اینجا هم فونت‌هایی که برای کدنویسی استفاده میشن قرار دادم، روی ویندوز و لینوکس نصب میشن(روی مک رو خودتون تست کنید.) فونت پیشنهادیم CascadiaCode هست.
https://github.com/mh-firouzjaah/coding-fonts

در vscode و خیلی از ادیتورهای دیگه افزونه‌ی kite قابل نصب هست، برای پایتون و جاوااسکریپت یکی از افزونه‌های خوب به شمار میره، برای نصب و راه اندازیش علاوه‌بر پلاگین باید یه فایل دیگه رو از سایتش بگیرید و نصبش کنید، مشکلی که اونجا پیش میاد تحریم بودن کشور ما هست. البته سایتش رو میتونید بدون مشکل باز کنید ولی فایلی که دانلود میکنید دوباره به اتصال اینترنت و دانلود فایلهای دیگری داره که این بار به تحریما میخوره، من با استفاده از شکن تونستم نصبش کنم و الان داره کار میکنه.
برای کار با شکن توی سایتشون توضیح دادن که چیکار کنید ولی اگر لینوکس دارین:
sudo vim /etc/resolv.conf
و ادرس‌ها رو paste کنید اینجا و بعدش هم برای خروج از vim اول دکمه Esc رو بزنید و بعدش هم علامت کولون یا : رو بزنید و بعد wq بنویسید و اینتر کنید.
برای من بعد از ری‌استارت کردن سیستم این فایل خالی میشه و این تنظیمات ازبین میرن پس جای نگرانی نیست.
@programming_tricks
This media is not supported in your browser
VIEW IN TELEGRAM