হে, কেমন আছেন? আমি ১৮ বছর عمرের একটি ব্যাকএন্ড ডেভেলপার এবং একজন আকাঙ্ক্ষী মেশিন লার্নিং ইঞ্জিনিয়ার। এবং এই আর্টিকেলে, আমি আপনাকে দেখাব কিভাবে আপনার ফোনে পাইথন ব্যবহার করে একটি ওয়েব অ্যাপ বিল্ড করবেন 😁। চলুন শুরু করা যাক।
প্রয়োজনীয়তা
প্রথমে আমাদের লাগবে একটি অ্যান্ড্রয়েড ফোন, কমপক্ষে ভার্সন ৬.০ এবং তার উপরে। কিন্তু যদি আমি বলি শুধু এটাই লাগবে? খুব ভালো লাগছে না?
এখন আমাদের जो পরবর্তী কাজ করতে হবে সেটি হলো আমাদের ফোনে Pydroid3 নামক একটি মোবাইল অ্যাপ্লিকেশন ইনস্টল করা।
আপনি দেখতে পাচ্ছেন, Pydroid3 হল একটি মোবাইল অ্যাপ্লিকেশন যা আপনাকে আপনার মোবাইল ফোনে পাইথন লিখতে দেয়, তাই এগিয়ে যান এবং ইনস্টল করুন।
এরপর আমাদের যা করতে হবে সেটি হলো Django ইনস্টল করা। আপনি যদি Django-র সাথে পরিচিত না হন, তবে Django ডক্স এখানে চেক আউট করুন।
Django ইনস্টল করতে আমাদের Pydroid3-এ সাইড নেভিগেশন খুলতে হবে এবং Terminal সিলেক্ট করতে হবে:
তারপর সেটিতে ক্লিক করলে আমরা নিচের মতো দেখব:
একবার হলে আপনাকে শুধু নিচের কমান্ডটি টাইপ করতে হবে:
pip install django
এবং আপনি নিচের আউটপুট পাবেন। আমি "requirements satisfied" মেসেজ পাচ্ছি কারণ আমার এটি ইতিমধ্যে ইনস্টল করা আছে।
সফলভাবে ইনস্টল হয়েছে, কিন্তু কনফার্ম করি। টার্মিনালে django-admin টাইপ করে এন্টার চাপুন।
আপনাকে নিচের আউটপুট मिलবে:
এটি মানে এটি সত্যিই ইনস্টল হয়েছে।
আমাদের প্রজেক্ট বিল্ড করার পদ্ধতি
তাহলে আমাদের প্রজেক্ট বিল্ড শুরু করি। আপনার টার্মিনাল খুলুন এবং নিচের কমান্ডটি টাইপ করুন:
django-admin startproject myapp
এটি আপনার রুট ফোল্ডারে myapp নামে একটি Django অ্যাপ্লিকেশন তৈরি করবে।
ডিরেক্টরি চেঞ্জ করে সেখানে যান cd myapp টাইপ করে এবং python manage.py runserver টাইপ করুন। তাহলে আপনি নিচের আউটপুট পাবেন:
এখন সার্ভার শুরু হয়েছে। এরপর, ব্রাউজারে टेস্ট করতে 127.0.0.1:8000 ভিজিট করুন।
এবং বাম! আপনি দেখবেন Django সফলভাবে সেট আপ হয়েছে।
আমাদের যা পরবর্তী কাজ করতে হবে সেটি হলো আমাদের Django অ্যাপ তৈরি করা। Django-এ, প্রজেক্ট ফোল্ডারটি রুট হিসেবে কাজ করে যখন অ্যাপটি নিজে অ্যাপ্লিকেশন হিসেবে কাজ করে।
একটি Django অ্যাপ তৈরি করতে, নিশ্চিত করুন আপনি এখনও ডিরেক্টরিতে আছেন, তারপর python manage.py startapp todo টাইপ করুন। এটি আমাদের myapp প্রজেক্টে একটি To-do অ্যাপ তৈরি করবে এরকম:
তারপর todo ফোল্ডারের ভিতরে আমরা এরকম কিছু দেখব:
আমরা ফাইলগুলোকে আরও নজদিক থেকে দেখব যখন আমরা সেগুলোর সাথে কাজ শুরু করব।
আমাদের অ্যাপ্লিকেশন কনফিগার করার পদ্ধতি
এখন অ্যাপটিকে Django প্রজেক্টের মাধ্যমে সার্ভ করা সম্ভব করা যাক। প্রথমে, myapp ফোল্ডারের settings.py ফাইল খুলুন এবং installed apps-এ 'todo' যোগ করুন এরকম:
পরবর্তী, আমাদের urls.py খুলুন এবং নিচের কোড আপনার কোডে যোগ করুন:
from django.urls import path, include path('', include('todo.urls'))
আসলে যা হয়েছে সেটি হলো আমি django.urls থেকে import path-এ include যোগ করলাম। এবং path (admin) নিচে, আমরা একটি খালি path তৈরি করলাম যা todo অ্যাপ ডিরেক্টরির urls.py ফাইলকে পয়েন্ট করে বা ইনক্লুড করে। আশা করি এটি স্পষ্ট।
এরপর, todo ফাইল ডিরেক্টরিতে urls.py নামে একটি নতুন ফাইল তৈরি করুন এবং নিচের কোড যোগ করুন:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='home') ]
আমরা Django.urls থেকে path ইম্পোর্ট করলাম এবং রুট ডিরেক্টরি থেকে views ইম্পোর্ট করলাম। তারপর আমাদের urlpatterns তৈরি করলাম যার প্রথম অংশ রুট লিংক। আপনি দেখতে পাচ্ছেন, views.index মানে আমরা এই views কে views.py ফাইলের index ফাংশনে পয়েন্ট করাচ্ছি। আপনি জিফি কিভাবে কাজ করে সেটা দেখবেন।
চলুন আমাদের views.py ফাইলে যাই এবং কিছু কোড যোগ করি।
শীর্ষে, HttpResponse ইম্পোর্ট করুন এরকম:
from django.http import HttpResponse
এবং এর নিচে এটি যোগ করুন:
def index(request): return HttpResponse('Hello')
আপনি দেখতে পাচ্ছেন, আমরা index ফাংশনটি তৈরি করলাম যেটি আমাদের urls.py-এ কল করেছিলাম এবং একটা request প্যারামিটার পাস করলাম। তারপর একটি HttpResponse রিটার্ন করলাম।
কিন্তু HttpResponse কাজ করার আগে, আমাদের django.http import HttpResponse থেকে ইম্পোর্ট করতে হবে – খুব সহজ। এটা টেস্ট করি: আপনার টার্মিনাল খুলুন এবং myapp-এ cd করে python manage.py runserver টাইপ করে চালান।
আপনি দেখতে পাচ্ছেন, এই রেসপন্স রিটার্ন করল। তাহলে এরপর আমরা আমাদের টেমপ্লেট HTML ফাইলগুলো লোড করব।
আমাদের HTML ফাইলগুলো লোড করতে, todo ডিরেক্টরিতে এই অর্ডারে একটি ফোল্ডার তৈরি করতে হবে:
todo/templates/todo
todo ডিরেক্টরিতে, templates নামে একটি ফোল্ডার তৈরি করুন। সেটার ভিতরে, todo নামে একটি ফোল্ডার তৈরি করুন, ততটুকু সহজ।
তারপর, index.html নামে একটি সিম্পল HTML ফাইল তৈরি করুন এবং এতে নিচের কোড লিখুন:
<h1>Hello world</h1>
এটিকে লোড করতে, আপনার views.py কোডকে এরকম করুন:
def index(request): return render(request, 'todo/index.html')
এখন রেসপন্স রিটার্ন করার বদলে, আমরা একটি রেন্ডার ভিউ রিটার্ন করলাম যা আমাদের HTML টেমপ্লেট রেন্ডার করতে দেয়। এখন সেভ করুন, আপনার টার্মিনাল খুলুন, myapp-এ cd করুন এবং চালান। আমাদের এই আউটপুট থাকবে
আপনি যদি আমার সাথে ফলো করছেন, তবে আপনার উপরের আউটপুট থাকা উচিত।
স্ট্যাটিক ফাইল সেট আপ করার পদ্ধতি
স্ট্যাটিক ফাইল সেট আপ করতে, আপনার todo ডিরেক্টরিতে একটি নতুন ফোল্ডার তৈরি করুন এবং এটিকে static নামে দিন। সেটার ভিতরে একটি ফোল্ডার তৈরি করুন এবং এটিকে todo নামে দিন।
তাহলে এরকম হবে: /static/todo/।
todo ডিরেক্টরিতে, main.css নামে একটি ফাইল তৈরি করুন। তারপর এতে কিছু স্টাইলিং লিখুন:
body { background-color: red; }
এবং সেভ করুন।
এখন আমাদের index.html ফাইলটি পুনরায় এডিট করি এই কোড লিখে:
{% load static %} <!Doctype html> <html> <head> <title>My page</title> <link rel="stylesheet" href="{% static 'todo/main.css' %}" > </head> <body> Hello </body> </html>
এখন একবার চালিয়ে দেখি:
আপনি যদি আমার সাথে ফলো করেছেন, তবে উপরের আউটপুট আপনার থাকা উচিত।
মডেল এবং অ্যাডমিন প্যানেল লোড করার পদ্ধতি
এখন আমাদের অ্যাডমিন প্যানেল লোড করতে, আমাদের একটি সুপারইউজার তৈরি করতে হবে। এটি করা খুব সহজ – শুধু আপনার টার্মিনাল খুলুন এবং myapp ফোল্ডারে cd করে python manage.py createsuperuser টাইপ করে এন্টার চাপুন। আপনি নিচের আউটপুট দেখবেন:
এরার আসছে কারণ আমরা python manage.py migrate এখনো চালাননি। তাই সেটি টাইপ করে এন্টার চাপুন, এবং আপনি এরকম কিছু পাবেন:
এখন python manage.py createsuperuser টাইপ করে এন্টার চাপুন:
সadece শংসাপত্রগুলো পূরণ করুন। এরপর আমাদের সার্ভার রান করে 127.0.0.1:8000/admin-এ পয়েন্ট করুন।
লগইন করলে আপনাকে ড্যাশবোর্ডে রিডাইরেক্ট করবে:
এখন অ্যাডমিন প্যানেল হয়ে গেলে, মডেল (ডাটাবেস) এর সাথে কাজ করি। আমরা একটি মডেল তৈরি করব যা কন্টেন্ট সংগ্রহ করবে। তাই আপনার models.py ফাইল খুলুন এবং নিচের কোড টাইপ করুন:
class Post(models.Model): content = models.CharField(max_length=255, null=False) def __str__(self): return self.content
আমরা একটি ক্লাস তৈরি করলাম যেটিতে models.Model প্যারামিটার আছে এবং একটি ভেরিয়েবল content আছে যা CharField() ধারণ করে, বেশটুকু একটি টেক্সট ফিল্ডের মতো। শেষে একটি ম্যাজিক str তৈরি করলাম যা অবজেক্টের বদলে মডেলের নাম রিটার্ন করে।
তাহলে এরপর আমাদের মাইগ্রেশন চালাতে হবে। আপনার টার্মিনাল খুলুন, myapp-এ cd করুন, এবং python manage.py makemigrations টাইপ করুন। আপনি নিচের আউটপুট দেখবেন:
এটি মানে আমাদের ডাটাবেসে Post টেবিল তৈরি হয়েছে। তারপর python manage.py migrateও চালান যা নিচের ফলাফল দেবে:
এটি মানে সব ঠিক আছে। এখন অ্যাডমিন পেজে এটি যোগ করতে, admin.py খুলুন এবং নিচের কোড টাইপ করুন:
from .models import * admin.site.register(Post)
আমরা মডেল থেকে সব মডেল ক্লাস ইম্পোর্ট করলাম এবং পোস্ট মডেলকে অ্যাডমিন প্যানেলে রেজিস্টার করলাম। এখন যদি আমরা অ্যাডমিন প্যানেল খুলি, তবে পোস্ট দেখতে পাব এবং ডেটা সেভ করতে পারব।
লক্ষ্য করুন যে এটি এখন todo অ্যাপ লিস্টে আছে:
এটিতে ক্লিক করলে আপনি নিচের দেখতে পাবেন:
তাহলে আপনি চাইলে একটি পোস্ট তৈরি করতে পারেন।
ডিবি থেকে ডেটা ভিউতে রেন্ডার করার পদ্ধতি
শেষে আমরা আমাদের ডিবি থেকে ডেটা ফেচ করব। সেটা করতে আমাদের views.py আপডেট করতে হবে নিচের মত:
from .models import * def index(request): content = Post.objects.all() context = {'content': content} return render(request, 'todo/index.html', context)
এটা খুব সহজ: আমরা models.py থেকে সব ইম্পোর্ট করলাম, content নামে একটি ভেরিয়েবল তৈরি করলাম, এবং Post টেবিল থেকে সব ডেটা রিট্রিভ করলাম। তারপর এটিকে একটি ডিকশনারি হিসেবে আমাদের ভিউতে পাস করলাম। তাই আমাদের index.html-এ কাজ করার জন্য নিচের কোড যোগ করুন:
{% for contents in content %} {{content.content}} {% endfor %}
এখানে, আমরা টেমপ্লেট ট্যাগ ব্যবহার করে একটি লুপ লিখলাম এবং সব ডেটা content ফেচ করলাম। এখন আপনার টার্মিনাল খুলুন, myapp-এ cd করুন, এবং সার্ভার রান করে ম্যাজিকটি দেখুন:
এটি কাজ করছে, কিন্তু কনফার্ম করি যে সত্যিই কাজ করছে:
এবং ফলাফল নিচের মত হওয়া উচিত:
Violà – এটি ঠিকঠাক কাজ করছে। শেষে আপনি শুধু একটি লাইন ব্রেক যোগ করতে পারেন যাতে আরও সুন্দর পড়া যায়। এবং আমরা শেষ করলাম!
পড়ার জন্য ধন্যবাদ। আপনি যদি একটি গভীর Django টিউটোরিয়াল চান তবে আমার ইউটিউব চ্যানেল Devstack ভিজিট করুন এবং সাবস্ক্রাইব করুন।