Skip to main content

Posts

Showing posts with the label Django

পাইথন এবং জ্যাঙ্গো কোডিং স্টাইল-১

প্রোগ্রামারদের মধ্যে একটা জোকস আছে যে কোনো একটা প্রোগ্রাম লিখতে যে সময় লাগে, প্রোগ্রামটা ডিবাগ করতে তার থেকে বেশি সময় লাগে। উপরের ছবিটা সুন্দর না ? আসল কথা হলো আমাদের কোড লেখার থেকে কোড পড়তে হয় বেশি।আন্ডারস্ট্যান্ডএবল কোড আমাদের ব্রেইনের ব্যান্ডউইথ কে ফ্রি করে দেয়।  ক্লিন,রিডএবল কোড লেখা কিন্তু একটা যোগ্যতা। এজন্য আমাদের চেষ্টা করতে হবে যতটা সম্ভব রিবাবলে কোড লেখার যে কোড নিজে কথা বলে। যেমন: আমি যদি কোনো ভ্যারিয়েবল  নাম c_t_num এর পরিবর্তে calculate_total_number নেই তাহলে বেশি রিডেবল হবে। পাইথন এ পেপ ৮ নামে অফিসিয়াল কোডিং স্টাইল এর গাইড আছে।  পেপ ৮ এর কিছু জিনিশ আমি লিখছি - পাইথন কোডিং কনভেনশন - ১.  ৪ টা স্পেস / ১ ট্যাব ব্যবহার করতে হবে ইনডেন্ট  হিসেবে             ২. প্রত্যেক  ক্লাসের মধ্যে ২ টা ব্ল্যান্ক লাইন দিতে হবে ৩. ক্লাসের মধ্যে মেথড ডেফিনেশন করতে ১ তা ব্ল্যান্ক লাইন দিতে হবে। pycharm পাইথন এর একটা জনপ্রিয় IDE . এতে ডিফল্ট স্টাইল বলা আছে। আপনি ফলো না করলে ইয়েলো কালার এর একটা দাগ আসবে।  তাছাড়...

কিভাবে Django তে চেঞ্জ পাসওয়ার্ড ভিউ Create করতে হয় ?

ইউসার প্রোফাইল থাকলে পাসওয়ার্ড চেঞ্জ এর অপশনের দরকার হয়।  Django তে বিল্ট ইন PasswordChangeForm ব্যবহার  করে খুব সহজে এই অপশন আনা যায়।  এজন্য  ফাঙ্কশন বেসড ভিউ ব্যবহার করা ভালো কারণ PasswordChangeForm , ModelForm কে ইনহেরিট করে না এবং ইউসার আর্গুমেন্ট কন্সট্রাক্টর হিসেবে নেয় . আমরা views.py এভাবে লিখতে পারি from django.contrib.auth import update_session_auth_hash from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import PasswordChangeForm from django.shortcuts import render, redirect @login_required def change_password(request):     if request.method == 'POST':         form = PasswordChangeForm(request.user, request.POST)         if form.is_valid():             user = form.save()             update_session_auth_hash(request, user)                     ...

One-To-One লিংক ব্যবহার করে কিভাবে Django ডিফল্ট User মডেলকে এক্সটেন্ড করতে হয়?

Django User মডেলকে ব্যবহার করে কয়েক ভাবে ইউসার মডেল এর ফিল্ড বাড়ানো যায় ।  One-To-One লিংক তার মধ্যে একটা।  আমি ম্যাক্সিমাম সময় এই পদ্ধতি এপলাই করে থাকি।  এজন্য আমাদের একটা নতুন মডেল বানাতে হবে এক্সট্রা ফিল্ড গুলা অ্যাড করার জন্য যেগুলা ইউসার মডেল এর সাথে সম্পর্কিত।  Profile নামে  একটা মডেল লিখি যেখানে আমরা ইউসার এর birthdate,  এবং address অ্যাড করবো। models.py  from django.db import models from dajngo.contrib.auth.models import User class Profile(models.Model):     user = models.OneToOneField(User, on_delete=models.CASCADE)     birth_date = models.DateField(null=True, blank=True)     address = models.TextField(max_length=500, blank=True)  আমরা এখন কিছু সিগন্যাল অ্যাড করবো যাতে আমরা যখন কোনো ইউসার অ্যাড/আপডেট করবো তখন যেন আমাদের Profile মডেলটা ও অটোমেটিক অ্যাড/আপডেট হয়ে যায় । from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_sav...

জ্যাঙ্গো নিজে নিজে শিখতে পারছি না , কি করবো?

অনেক সময় এমন পোস্ট আমি এফবি এর বিভিন্ন গ্রুপ এ দেখেছি। জ্যাঙ্গো লিখতে গেলে আমার মনে হয় , অনলাইন এ অনেক অনেক ভাল টিউটোরিয়াল আছে।  জ্যাঙ্গো এর নিজের ই ভাল ডকুমেন্টেশন আছে। কিন্তু  ডকুমেন্টেশন দেখে না বুঝলে ভালো একটা টিউটোরিয়াল দেখতে হবে ইউটুবে আছে অনেক ।  ওইটিউটোরিয়ালে  যা যা করছে তা নিজেকে  করতে হবে। যেমন যদি আপনি ভিডিও টিউটোরিয়াল দেখেন তাহলে শুধু ভিডিও দেখলে হবে না।  ভিডিও তে যা যা  করছে  তা নিজে কে ও করতে হবে।  নিজে করতে গেলে  অনেক সমস্যা আসবে এবং  সমস্যা থেকেই অনেক কিছু শেখা  হয়ে যাবে ।  ভিডিও টিউটোরিয়াল বা কোর্স শেষ  হলে নিজে নিজে একটা প্রজেক্ট প্ল্যান করে প্রজেক্ট বানাতে হবে।  তাহলেই অনেক ধারণা এসে যাবে। এটা  শুধু জ্যাঙ্গো এর জন্য না সব কিসুর জন্য।  তবে সমস্যাই অবশ্যয় আসবে তক্ষন সবার আগে গুগল কে একবার আস্ক করতে হবে।  গুগল থেকে উত্তর না পেলে কারো  থেকে হেল্প নেওয়া যায়।  আসলে কিছু জিনিস আছে যা অন্যের কাছ  থেকে শেখার থেকে নিজে নিজে শিখতে গেলে আর একটু বেশি শেখা যায় ।  একটার...