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

Uncategorized

১-১। প্রজেক্ট শুরু করা

by , on
October 27, 2016

বাংলায় জ্যাঙ্গো টিউটোরিয়াল সিরিজে স্বাগতম।   টিউটোরিয়ালটি লিখতে শুরু করলাম আমার ছাত্র হাসীব  কে উৎসর্গ করে। তাকে আমি যেভাবে সহজ সরলভাবে বোঝানোর চেষ্টা করেছি এখানেও সেভাবে লেখার চেষ্টা করব ইনশা আল্লাহ । কোন কিছু বুঝতে সমস্যা মনে হলে কমেন্ট করুন অথবা  আমাকে ইমেইল করুন [email protected] । টিউটোরিয়ালের সর্বশেষ কোড পাবেন গিটহাবে

Virtual Environment এর ব্যাবহার

পাইথন ও জ্যাঙ্গো এর ভিন্ন ভিন্ন ভার্সনের ব্যাবহার ঠিক রাখার জন্য virtual environment ব্যাবহার করা হয়। বিস্তারিত দেখুন


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

virtual environment একটিভ করে জ্যাঙ্গো ইন্সটল করুন।

pip install django

জ্যাঙ্গো তার সর্বশেষ ভার্ষন ইন্সটল করে নেবে।

যাচাই করুন

python -m django –version

2.0.3

স্বাগতম, এখন আপনি জ্যাঙ্গো ফ্রেমওয়ার্কের মজার জগতে বিচরন করতে পারবেন। এই পর্বে আমরা ধীরে ধীরে একটা ব্লগ প্রজেক্ট তৈরী করব। প্রজেক্ট শুরু করার জন্য জ্যাঙ্গো আমাদেরকে django-admin নামে একটি কমান্ড প্রদান করে। আপনার টার্মিনাল খুলুন (Ctrl + Alt + t) । আপনি কোন ডিরেক্টরীতে আছেন জানতে ls লিখে Enter দিন। ডিফল্টভাবে Home ডিরেক্টতে টার্মিনাল থাকবে। আপনি যদি চান ডেস্কটপে প্রজেক্ট তৈরী করবেন তাহলে cd Desktop লিখুন । দেখবেন টার্মিনালে Desktop দেখাবে। শুধু cd দিয়ে এন্টার দিলে পুনরায় হোম ডিরেক্টরীতে চলে আসবে। নিচের কোডটি প্রবেশ করায়। 

django-admin startproject banglaidj

startproject কমান্ড দ্বারা আমরা জ্যাঙ্গোকে বললাম,  “আমাদের জন্য একটা প্রজেক্ট তৈরী করে দাও, যার নাম হবে  ‘banglaidj’ । ব্যাস, জ্যাঙ্গো আমাদের জন্য একটা ডেমো প্রজেক্ট তৈরী করে দিয়েছে banglaidj নামে।

আপনি টার্মিনালে যেই ডিরেক্টরী থেকে কমান্ডটি লিখেছেন সেখানেই banglaidj নামে একটি ডিরেক্টরী তৈরী হবে। আমি home ডিরেক্টরী থেকে প্রজেক্ট তৈরী করেছি । আপনারা চাইলে যে কোন ডিরেক্টরী থেকেই প্রজেক্ট তৈরী করতে পারেন ।

banglaidj   ডিরেক্টরিতে  প্রবেশ করি।

cd banglaidj

সেখানে banglaidj নামে আরো একটি ডিরেক্টরি  এবং manage.py একটি ফাইল রয়েছে । এখন আমরা এই manage.py দিয়ে আমাদের প্রজেক্ট ম্যানেজ করব। ls কমান্ড দিয়ে দেখুন আপনি সঠিক ডিরেক্টরিতে আছেন কিনা।

django ডেভেলপমেন্ট সার্ভার

 এখন দেখি আমাদের প্রজেক্ট ঠিকঠাক মত কাজ করে কিনা। টার্মিনালে লিখুন,

python manage.py runserver

 

আপনি নিচের লেখাটি দেখতে পাচ্ছেন

Performing system checks...

System check identified no issues (0 silenced).

You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

May 02, 2018 - 13:50:20
Django version 2.0.5, using settings 'banglaidj.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

আপনি জ্যাঙ্গো ওয়েব সার্ভার চালু করেছেন, যা পাইথন দিয়ে তৈরী একটি lightweight ওয়েব সার্ভার। python manage.py runserver দিলে জ্যাঙ্গো আমাদের জন্য একটা ডেভেলপমেন্ট ওয়েব সার্ভার রান করে দেয় ,যেটা 127.0.0.1 আইপি এর 8000 পোর্টে রান হয়। তাই আমরা 127.0.0.1:8000 বা localhost:8000 এড্রেসে ঢুকে জ্যাঙ্গ এর তৈরী করা ডিফল্ট ওয়েব পেজ দেখতে পায়। কিন্তু প্রডাকশনের জন্য এই ডেভেলপমেন্ট সার্ভার ব্যাবহার করা উচিৎ নয়।

Address বার এ 127.0.0.1:8000 লিখে প্রবেশ করুন । নিচের মত পেজ দেখতে পাবেন

এটি হচ্ছে জ্যাঙ্গো এর প্রথম পাতা যা  জ্যাঙ্গো তার ওয়বে সার্ভারের মাধ্যমে আমাদেরকে প্রদান করছে।

আপনি সফলভাবে একটি প্রজেক্ট শুরু করতে পেরেছেন। আমরা ধীরে ধীরে ‘বাংলায় জ্যাঙ্গো’ সাইটের মত একটি ব্লগ সাইট বানানোর চেষ্টা করব। পরবর্তী টিউটোরিয়ালে আমরা দেখব এপ্লিকেশন কি এবং কিভাবে এপ্লিকেশন তৈরী করতে হয়।

আগের পোষ্ট:জ্যাঙ্গো কি                                                                  পরের পোষ্ট: App শুরু করা

Uncategorized

সমাধানঃ python-social-auth, ফেচবুক থেকে ইমেইল না পাওয়া

by , on
October 16, 2016

python-social-auth ব্যাবহার করে জ্যাঙ্গো ওয়েব পেজে সামাজিক যোগাযোগের মাধ্যমের একাউন্ট দিয়ে সরাসরি লগইন করা যায়। এই টুলস ব্যাবহার করতে গিয়ে বেজায় ঝামেলা পোহালাম। সবকিছু ঠিকঠাক কিন্তু ফেচবুক আমাকে Email দিচ্ছে না। Email ফিল্ড খালি রেখেই লগইন করিয়ে দিচ্ছে। কিন্তু আমার এপ এর জন্য Email পাওয়া খুব জরুরী । টানা ৪ দিন  ঘটাঘাটীর পর সমস্যা ধরতে পারলাম । ফেচবুক সম্প্রতি তাদের API পরিবর্তন করেছে। তাই

SOCIAL_AUTH_FACEBOOK_SCOPE = [’email’]

এই সেটিংস কোন Email পাঠাচ্ছে না। তাই এখন আপনাকে ফেচবুকের কাছে অতিরিক্ত একটি আবেদন করতে হবে Email পাওয়ার জন্য।

SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
    'fields': 'id,name,email', # needed starting from protocol v2.4
}

এই লাইনটি যোগ করুন আপনার সেটিংস ফাইলে । ব্যাস, ফেচবুক এখন আপনাকে সুড়সুড় করে Email দিয়ে দেবে।
LinkedIn লগইন এর ক্ষেত্রেও একই ঝামেলায় পরেছিলাম। ভাবলাম তারাও কি API পরিবর্তন করল নাকি ?
ডকুমেন্টেশন ঘেঁটে দেখলাম আমিই ভুল করে বসে আছি।
আমি ব্যাবহার করেছি OAUTH2 আর সেটিংস বসিয়ে রেখেছি OAUTH1 এর ।

LinkedIn স্কোপ ব্যাবহার করার নিয়মঃ

SOCIAL_AUTH_LINKEDIN_OAUTH2_SCOPE = ['r_emailaddress']

নিচের লাইনটাও যোগ করতে হবেঃ

SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = ['email-address']