বাংলায় জ্যাঙ্গো

Uncategorized

রেজিষ্ট্রেশন

by , on
October 26, 2017

আসসালামুয়ালাইকুম,

কেমন চলছে আপনার জ্যাঙ্গো শেখা ? আশা করি মাতৃভাষায় জ্যাঙ্গো ফ্রেমওয়ার্ক শিখতে পেরে আপনার বেশ ভালই লাগছে। গত পর্বে আপনি শিখেছিলেন কিভাবে লগিন পেজ বানাতে হয়। আজকে আমরা দেখব কিভাবে আপনি রেজিষ্ট্রেশন পেজ বানাবেন।

সৃতিচারনঃ

লগিন পেজ তৈরী করার সময় আপনি urls.py ( যেখানে settings.py রয়েছে) এ একটি url তৈরী করেছিলেন /login/ নামে যেটা views.py ( যেখানে settings.py রয়েছে) এর user_login নামের একটি ভিউ কে কল করে এবং এই ভিউ এর মধ্যে লগিন করার বাকি কাজগুলো সম্পন্য করেছিলেন । এই কাজটি আপনি আলাদা এপ এর মধ্যেও করতে পারতেন। আজও আমরা ঠিক একই ধারায় রেজিষ্ট্রেশন সম্পন্য করব।

রেজিষ্ট্রেশনঃ

কোন ওয়েবসাইটে রেজিষ্ট্রেশন করার জন্য আমরা website_url/signup এরকম লিঙ্ক এ প্রবেশ করি। সুতরাং urls.py ( যেখানে settings.py রয়েছে) নতুন url তৈরী করি। যেটি views.py এর user_signup কে কল করবে।

banglaidj/urls.py

# banglaidj/urls.py

from django.urls import path, include
from django.contrib import admin
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('signup/', views.user_signup, name='signup'),
    path('login/', views.user_login, name='login'),
    path('logout/', views.user_logout, name='logout'),
]

banglaidj/views.py

#banglaidj/views.py

from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import authenticate, login, logout

def user_signup(request):
    return render(request, 'signup.html')

templates/signup.html

{% extends "base.html" %}

{% block content %}
  <h1>রেজিষ্ট্রেশন</h1>

{% endblock content %}

এখন ব্রাউজারে localhost:8000/signup প্রবেশ করালে শুধু লেখা একটি পেজ দেখতে পাবেন । কিন্তু রেজিষ্টেশন করার কোন ফর্ম নেই।

ধৈর্য ধরুন , এখন আমরা একটা ফর্ম যুক্ত করব। জ্যাঙ্গো আপনার কাজের সুবিধার জন্য একটা রেজিষ্ট্রেশন ফর্ম ক্লাস তৈরী করে রাখছে। ক্লাসটা ইম্পোর্ট করি ।

from django.contrib.auth.forms import UserCreationForm

user_signup ভিউ এর মধ্যে ফর্ম ক্লাসকে  কল করি। এবং টেমপ্লেটে পাঠানোর জন্য render ফাংশনের মধ্য লিখে ফেলিঃ

from django.contrib.auth.forms import UserCreationForm

def user_signup(request):
    form = UserCreationForm()
    return render(request, 'signup.html',{'signup_form':form})

এখন signup.html এর মধ্যে signup_form ভ্যারিয়েবলকে কল করলেই আমরা ফর্মটি দেখতে পারব

{% extends "base.html" %}

{% block content %}
  <h1>রেজিষ্ট্রেশন</h1>

    <form class="form">
    {{ signup_form }}
    </form>

{% endblock content %}

 

UserCreationForm রেজিষ্টেশন ফিল্ডগুলো নিয়ে এসেছে। কিন্তু চেহারার অবস্থা খুব খারাপ । একটি সুন্দর চেহারা দান করিঃ

{% extends 'base.html' %}
{% block content %}
<h1>রেজিষ্ট্রেশন</h1>
<form class="form" method="post" action="/signup/">
    {% csrf_token %}
    {{signup_form.as_p}}
    <input type="submit" value="submit" class="btn btn-primary" />
</form>

{% endblock %}

method ও action নিয়ে ১ম পর্বে আমরা আলচনা করেছি।

Uncategorized

দোকান – প্রজেক্ট প্লানিং

by , on
October 23, 2017

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

নতুন অবস্থায় আমরা কোন প্রজেক্ট করতে চাইলেই কোড করা শুরু করে দেয় কোন প্লানিং ছড়াই। যার কারনে সফল প্রজেক্ট তৈরী করতে ব্যার্থ হয়। গত পর্বে আমরা দেখেছি প্রজেক্ট শুরু করার পুর্বে কিভাবে একটি প্রজেক্টের জন্য প্লানিং রেডি করতে হয়। আজ আমরা সেই প্লানিং অনুসারে একটি নতুন প্রজেক্ট করা শুরু করব। 

মনে করুন আপনার একটি দোকান রয়েছে। আপনি আপনার দোকানের পণ্য গুলোর তালিকা রাখতে চান। দোকানে এখন কোন পণ্য কতগুলো রয়েছে, একটা পন্য দোকানে যোগ হলে তালিকা আপডেট হবে, কোন পণ্য বিক্রয় করলে তালিকা থেকে পন্যের সংখ্যা কমে যাবে এবং দিনশেষে রিপোর্ট দেখতে চান কোন পণ্য কতগুলো বিক্রয় হয়েছে। এই কাজগুলোকে বলে Inventory Management System. আমারা এখন ধীরে Inventory Management System তৈরী করব।

প্রথমে আমাদের কাজকে কয়েকটি ভাগে ভাগ করে নেই;

) কোন পণ্য কতগুলো রয়েছে তার তালিকা তৈরী

– Database design

পন্যের তালিকা Front Page এ দেখানো

) নতুন পণ্য যোগ করা

ফর্ম তৈরী

আগের পন্যের সাথে নতুন পণ্য যোগ করা

) পণ্য বিক্রয় করা

ফর্ম তৈরী

আগের পন্য থেকে বিয়োগ করা

) রিপোর্ট দেখা

এখন আমরা যে কাজের তালিকা তৈরী করলাম তা trello.com এ তুলে ফেলি ।

create New board এ গিয়ে নতুন বোর্ড তৈরী করি

এখন কয়েকটি লিষ্ট তৈরী করি

আমরা যে তালিকাটি তৈরী করেছি তা To Do লিষ্টের মধ্যে লিখে ফেলি

আমাদের ডকুমেন্টেশন তৈরী এখন আমরা কোড করা শুরু করব।

বাংলায় জ্যাঙ্গো টিউটোরিয়ালের সাথেই থাকুন।পরবর্তি পোষ্ট থেকে আমরা  আমাদের “দোকান” প্রজেক্টের কোড করা শুরু করব  ।

Uncategorized

ওয়েব রিকুয়েস্ট পদ্ধতি

by
, on
October 18, 2017

আমরা যখন ব্রাউসার এ কোনো কিছু লিখে সার্চ দেই (www.banglai-django.com )তখন ব্রাউসার থেকে ওয়েব সার্ভার এ রিকুয়েস্ট আসে।আমাদের পাঠানো রিকুয়েস্ট যদি কোনো static ওয়েবসাইট এর জন্য হয় সে ক্ষেত্রে ওয়েব সার্ভার সরাসরি static page টি রিকোয়েস্টিং ব্রাউসার কে send করে।যদি ডায়নামিক হয় সে ক্ষেত্রে page কে একটা special software এর কাছে pass করা হয় যার কাজ হল পেজ কে ফিনিশ করা,মোডিফাই করা।এই special software কে বলা হয় application server। Application server টি ওয়েবসার্ভার এর পাঠানো Page এর code পড়ে একে instruction অনুসারে ফিনিশ করে এবং অতিরিক্ত code page থেকে রিমুভ করে ওয়েব সার্ভার কে একটা finished page পাঠায়।ওয়েবসার্ভার এ finished page টিকে রিকোয়েস্টিং ব্রাউসার এর কাছে send করে। এভাবে ওয়েব রিকোয়েস্ট আদান প্রদান হয়। নিচের ফলোচার্ট দেখলে হয়ত বা আরো পরিষ্কার হবে বিষয়টা….

আগামী পর্বে আমরা django request -response cycle নিয়ে আলোচনা করবো

Uncategorized

কিভাবে একটি প্রজেক্ট শুরু করবেন ?

by , on
October 5, 2017

বাংলায় জ্যাঙ্গো টিউটোরিয়াল সাইটে আপনাদের স্বাগতম। ইতমধ্যে আপনারা জ্যাঙ্গো এর ব্যাসিক কিছু কাজ শিখে ফেলেছেন। এখন আপনি চাইলে বড় বড় সফটওয়ার তৈরী করে ফেলতে পারেন। আমাদের মাথায় অনেক আয়ডিয়া ঘুরঘুর করে । আপনি চাইলে এখন আপনার আইডিয়া বাস্তবায়ন করে ফেলতে পারেন।

সফটওয়ার প্রজেক্ট তৈরী করার সময় আমরা শুরুতেই কোড করতে শুরু করে দেয়। তাতে দুই দিন কোড করার পর দিশা হারিয়ে ফেলি এবং আপনার আইডিয়া বাস্তবায়ন করা অনেক কঠিন হয়ে পরে। তাই কিছু নিয়ম নিতি মেনে আপনাকে প্রজেক্ট শুরু করতে হবে।

প্রশান্তি অনুভব করুন

নিজের মধ্যে এক ধরনের প্রশান্তি অনুভব করুন। আপনি অনেক মজার একটি কাজ করতে যাচ্ছেন। আপনি যা করতে যাচ্ছেন তা হয়তো পৃথিবীতে আর কেউ কখোনো করে নি। চিন্তা করুন আপনার আইডিয়াটি কি কাজে আসতে পারে। কেন আপনার আইডিয়া অন্যদের থেকে আলাদা।

Start Small – সহজ শুরু

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

অন্যদের সাথে ভাগ করে নিন

আপনার আইডিয়া নিয়ে অন্যদের সাথে আলোচনা করুন। অনেক কটু কথা শুনতে পাবেন। ধৈর্য ধরে শুনুন, নতুন নতুন কিছু জানতেও পারবেন। বন্ধুরা বলবে ধুর এটা তো অমুক কম্পানিই দিচ্ছে, এটা তো ১০ বছর আগে থেকেই আছে। চিন্তা করুন অন্যেরটা থেকে আপনার আইডিয়ার কি পার্থক্য।  আপনার আইডিয়াকে ভালোবাসুন।

লিখে ফেলুন 

আপনি যে আইডিয়া বাস্তবায়ন করতে চান তা একটি খাতায় লিখে ফেলুন। প্রথম প্রথম আপনার আইডিয়া ঝাপসা থাকবে, কিভাবে শুরু করবেন বুঝতে পারবেন না। তাই কিছু সময় ব্যায় করে আইডিয়াটি লিখে ফেলুন। ধীরে ধীরে আপনার আইডিয়া অনেক পরিষ্কার হবে এবং নতুন অনেক কিছু আবিষ্কার করতে পারবেন।লেখার ক্ষেত্রে কিছু বিষয় লক্ষ্য রাখুনঃ

  • আপনার সফটওয়ারটি কোন কোন সমস্যার সমাধান করবে?
  • আপনার সফটওয়ারটির লক্ষ কি ?
  • কে কে আপনার সফটওয়ারটি ব্যাবহার করতে পারে?

এখন আপনার প্রজেক্টের কি কি ফিচার হতে পারে তার একটি লিষ্ট তৈরী করুন। লিষ্টের মধ্যে থেকে minimum viable product (MVP) নির্বাচন করুন। অর্থাৎ আপনার সফটওয়ার এ নুন্যতম কি কি ফিচার থাকবে তার একটি লিষ্ট আলাদা করুন। এখন এই ফিচারগুলো নিয়ে আপনার মুল কাজ শুরু হবে।

MVP ফিচারগুলোকে কয়েকটি ছোট ছোট ভাগে ভাগ করুন। যেমন একটি ব্লগ সাইট করতে গেলে যে ভাগগুলো হতে পারে:

  • লগিন
  • রেজিষ্ট্রেশন
  • পোষ্ট লিষ্ট দেখানো
  • কমেন্ট
  • সোশাল লগিন

KanBan বোর্ড তৈরী করুন

এখন আপনার ছোটছোট ভাগগুলো নিয়ে একটি ব‌োর্ড তৈরী করুন। অনলাইনে কাজটি করার জন্য trello.com ব্যাবহার করতে পারেন।  Todo, Working, Testing, Done এরকম কয়েকটি ভাগ রাখতে পারেন। প্লানিংগুলো Todo অংশে তালিকা তৈরী করুন।  সবার প্রথম যে কাজরি করবেন সেটি Todo থেকে নিয়ে  Working অংশে রাখবেন। এই কাজটি হয়ে গেলে Testing এবং Testing শেষ হলে Done অংশে রাখুন। এভাবে একটা কাজ শেষ হলে আরেকটি কাজ শুরু করুন।

এই প্রক্রিয়ায় খুব সহজে আপনি আপনার প্রজেক্ট ম্যানেজ করতে পারবেন এবং কোড করতে সময় ও কম লাগবে এবং সাচ্ছন্দ বোধ করবেন।

পরবর্তি পোষ্ট