برنامه‌نویسی پایتون و جنگو با پای‌چارم

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

برنامه‌نویسان حرفه‌ای همواره از ابزار‌های پیشرفته در توسعه‌ی نرم‌افزار به منظور تسهیل و سرعت بخشیدن به کار استفاده می‌کنند. هدف از انتخاب ابزار‌های توسعه‌ی نرم‌افزار، تمرکز بر روی وظیفه‌ی اصلی برنامه نویسی که همان پاسخ‌گویی به نیاز‌های کاربر نهایی است بوده و ابزارهای متعددی در این زمینه ساخته و معرفی شده است. پای‌چارم (PyCharm) یک IDE یا فضای توسعه‌ی مجتمع برای زبان برنامه‌نویسی پایتون است که توسط شرکت نام‌آشنای JetBrains توسعه داده می‌شود. این شرکت نرم‌افزار‌های زیادی از جمله وب‌استورم، اندروید استودیو و پای‌چارم را برای توسعه‌دهندگان نرم‌افزار و برنامه نویسان گسترش داده است.

چرا باید از پای‌چارم استفاده کنیم؟

پای‌چارم یک IDE نام‌آشنا برای برنامه‌نویسی پایتون است که ابزار‌های مناسبی را برای برنامه‌نویسان و کاربران فریم‌ورک‌های مختلف پایتون مانند جنگو، فلسک، پیرامید و … فراهم کرده است. با استفاده از PyCharm شما می‌توانید ضمن استفاده از ابزار‌های بسیار خوب تکمیل کد و کنترل و اصلاح خطا در برنامه، به ده‌ها پلاگین کاربردی که هر برنامه‌نویسی به آنها نیاز دارد، دسترسی داشته باشید. همچنین می‌توانید از قابلیت‌های مرتبط با فریم‌ورک‌های موجود استفاده کرده و با تمرکز بالاتری به توسعه نرم‌افزار‌های خود بپردازید. همچنین می‌توانید با به اشتراک‌گذاری تجربیات مشترکی با برنامه‌نویسان بسیاری که از فضای مشابه برای توسعه استفاده می‌کنند، همراه شوید. پای‌چار در واقع دریچه‌ای به برنامه‌نویسی مدرن پایتون است. برخی از ویژگی‌های دوست‌داشتنی این IDE معروف برای توسعه‌دهندگان جنگو عبارتند از:

اجرا و رفع خطای سریع

یکی از ویژگی‌های منحصر به فرد و دوست‌داشتنی پای‌چارم، اجرای سریع برنامه‌ها است. شما به ساده‌ترین شکل و با نوشتن یک کد کوتاه می‌توانید به سادگی برنامه‌های خود را در IDE اجرا کنید. بدون اینکه نگران تنظیمات سرور و موارد مرتبط با آن باشید. همچنین می‌توانید از با استفاده از BreakPoint در متن کد و استفاده از ابزار‌های رفع خطا، برنامه را به شکل مطلوب خود اجرا کرده و خطا‌ها را رفع کنید.

پشتیبانی از الگو‌های جنگو

پای‌چارم آشنایی کاملی با فریم‌ورک جنگو دارد. همچنین این IDE توانایی خوبی در تشخیص خطا‌های ناشی از کد در روند اجرای برنامه داشته و در زمان بروز هرگونه خطا در syntax آن را به شما اطلاع می‌دهد. پس می‌توانید با خیال آسوده بر روی توسعه‌ی کد‌های خود متمرکز شوید.

حرکت سریع بین بخش‌ها و دسترسی سریع

امکانات پای‌چارم برای حرکت بین بخش‌های مختلف کد به شما کمک می‌کند تا به راحتی به تنظیمات، مدل‌ها، urls و سایر بخش‌های کد رفته و بدون صرف زمان زیاد، در مکان مورد نظرتان قرار بگیرید. در پروژه‌های بزرگ، گاهی دسترسی به بخش‌های مختلف کار زمان‌بر و خسته‌کننده‌ای به نظر می‌رسد که این نرم‌افزار از اتلاف زمان شما جلوگیری می‌کند.

سیستم تکمیل خودکار کد

سیستم تکمیل کد شاید اولین و پایه‌ای‌ترین نیاز و بزرگترین خواسته از یک IDE باشد. به کمک سیستم تکمیل خودکار کد در پای‌چارم قادر خواهید بود پیشنهادات نرم‌افزار را در خصوص بخش‌هایی که برای تکمیل کد، امکانات قابل استفاده و … را بررسی کرده و از میان آنها گزینه‌ی مورد نظر خود را برگزینید. همچنین می‌توانید با زدن کلید tab نوشته‌ها را کامل کنید و از تایپ صحیح نام کلاس‌ها و متغیر‌ها مطمئن باشید.

دستیار کارآمد در نوشتن کد

با توجه به تسلط پای‌چارم به کد‌های پایتون و جنگو، در موارد بسیاری با تایپ بخشی از یک دستور سینتکس کامل و صحیح را دریافت کرده و زمان خود را بر روی تنظیمات و فرمتینگ کد ذخیره می‌کنید. همچنین کنترل شکستگی‌های خطوط، براکت‌ها و علامت‌گذاری کد را به یک دستیار مطمئن بسپارید.

حمایت از فرم‌ها و ORM

همانطور که اشاره کردم، پای‌چارم آشنایی خوبی با جنگو داشته و فرم‌ها و مدل‌های دیتابیس را به عنوان نمونه‌های از پیش تعریف شده در بانک اطلاعاتی خود دارد. تنها کافی است بخشی از کلمات مدل یا view را تایپ کنید تا PyCharm مابقی کار و راهنمایی‌های لازم را به عهده گرفته و باقی موارد را به صورت اتوماتیک انجام دهد.

استفاده از کنترلر‌های نسخه و git

یکی از بزرگترین ویژگی‌های IDE در دوره‌ی کنونی، حمایت از ورژن کنترل و کنترل تغییرات کد است. پای‌چارم به دلیل همخوانی با git و سایر نرم‌افزار‌های کنترل نسخه، عملیات commit کردن و push و pull با سرور گیت را به عهده گرفته و زمان زیادی را برای شما ذخیره می‌کند. همچنین می‌توانید با حداقل دانش از Version Control این ابزار مهم را در اختیار بگیرید و کد‌های خود را با گیت‌هاب یا هر ریپوزیتوری دیگر هماهنگ کنید.

استفاده از virtualenv برای کنترل وابستگی‌های نسخه

در آموزش اولین از این سری به مزایای استفاده از فضای ایزوله برای توسعه‌ی نرم‌افزار و استفاده از virtualenv پرداختیم. پای‌چارم به راحتی فضای مجازی را برای شما ایجاد و در زمان توسعه آن‌را فعال می‌کند و دیگر نیازی نیست در هر نوبت آن را فعال و غیر فعال کنید. این کار به کنترل وابستگی‌ها و کنترل نسخه‌های نصب شده بر روی سیستم کمک شایانی خواهد کرد.

نصب و راه‌اندازی پای‌چارم

نصب و راه‌اندازی پای‌چارم بسیار ساده و مشابه تمام نرم‌افزار‌های دیگر است. این نرم‌افزار قابلیت نصب بر روی کلیه‌ی سکوهای نرم‌افزاری را داشته و می‌توانید آخرین نسخه‌ی آن را از سایت رسمی PyCharm دانلود کنید. نصب نرم‌افزار نیز بسیار ساده و دارای مراحل و راهنمای نصب مناسب است.

کافی است نسخه‌ی IDE را متناسب با سیستم‌عامل خود از لینک فوق انتخاب کرده و مراحل دریافت و نصب آن را پیش ببرید. البته توجه داشته باشید که در زمان نصب نرم‌افزار Python را بر روی سیستم خود نصب و از کارکرد صحیح آن مطمئن شوید. با توجه به مجموعه‌ی آموزشی پیش‌رو پیشنهاد می‌کنم از پایتون نسخه ۳ استفاده کنید.

کرک و اکتیویشن PyCharm

این بخش را که هیچ وقت دوست نداشتم توضیح دهم به سایت‌های دانلود‌سنتر می‌سپاریم. با توجه به محبوبیت و همه‌گیر بودن نرم‌افزار‌های JetBrains ابزار‌های بسیار زیاد برای کرک و اکتیویشن پای‌چارم به صورت آنلاین و آفلاین وجود دارد. همچنین می‌توانید نرم‌افزار را در حالت ترایال و ۳۰ روزه نصب و استفاده کنید. در صورت علاقه به فعال‌سازی آنلاین می‌توانید به بخش License server رفته و برای فعال‌سازی آدرس سرور را از بخش کرک و اکتیویشن PyCharm دریافت نمایید.

ساخت یک پروژه‌ی جدید در پای‌چارم

پس از نصب و فعال‌سازی پای‌چارم نوبت به ساخت یک پروژه جنگو با این IDE محبوب می‌رسد. نرم‌افزار را اجرا کرده create new project را انتخاب کنید.

صفحه‌ی شروع پای‌چارم
صفحه‌ی شروع پای‌چارم

در صفحه‌ی بعد فضای envirement را بر روی virtualenv قرار داده و نسخه‌ی پایتون مورد استفاده در پروژه (ترجیحا نسخه‌ی ۳) انتخاب کنید. درنهایت با زدن دکمه‌ی create پروژه را ایجاد نمایید.

ایجاد پروژه جدید در پای‌چارم
ایجاد پروژه جدید در پای‌چارم

دقت کنید که در این بخش می‌توانستید از لیست سمت چپ مستقیما فریم‌ورک جنگو را انتخاب کرده و عملیات نصب را به پای‌چارم بسپارید. در غیر این صورت پس از ایجاد پروژه و در قسمت ترمینال کدهای زیر را به منظور نصب جنگو تایپ کنید:

pip install django

در این بخش پکیج‌منیجر شما به طور پیش‌فرض آخرین نسخه‌ی جنگو (در حال حاضر نسخه ۲.۰.۷) را برای شما نصب خواهد کرد.

کار تقریبا تمام است. اکنون می‌توانید برای ایجاد اولین پروژه و اولین اپ جنگو کد‌های زیر را به ترتیب تایپ کنید. این کد‌ها در بخش‌های قبلی هم به منظور نصب و راه‌اندازی جنگو به تفصیل شرح داده شده بود.

django-admin startproject mysite
python manage.py startapp firstapp

در آخرین مرحله برای اجرا و تست پروژه و استفاده از امکانات به منوی preferences رفته و در قسمت languages و بخش جنگو، آدرس دایرکتوری اصلی جنگو (جایی که فایل manage.py در آن قرار دارد) و فایل تنظیمات را وارد نمایید.

تنظیم آدرس پروژه‌ی جنگو
تنظیم آدرس پروژه‌ی جنگو

سپس به قسمت Edit Configuration در بخش ران رفته و بعد از زدن علامت + در سمت چپ بالای صفحه Django server را انتخاب نمایید و برای آن یک نام برای مثال runserver انتخاب کنید. از این پس با زدن دکمه‌ی Play سبز رنگ سرور شما اجرا شده و نیازی به تایپ دستور runserver ندارید.

اجرای سریع سرور جنگو در پای‌چارم
اجرای سریع سرور جنگو در پای‌چارم

استفاده از ابزار manage.py

یکی دیگر از قابلیت‌هایی که پای‌چارم در اختیار شما خواهد گذاشت ابزاری با عنوان Run manage.py Tasks در منوی Tools است. این ابزار یک راهنمای مناسب با قابلیت Auto complete برای اجرای دستورات manage.py است که در مراحل بعدی و متناسب با پیشرفت جلسات آموزش جنگو به آن‌های بیشتر خواهیم پرداخت.

نرم‌افزار پای‌چارم قابلیت‌های بسیار زیادی برای توسعه‌ی پایتون و جنگو دارد که به تناسب و در بخش‌های مختلف به آنها اشاره خواهم کرد. امیدوارم این آموزش گام مناسبی را در آشنایی شما با ابزار‌های توسعه‌ی نوین برنامه‌نویسی برداشته و به تمرکز شما به عنوان یک برنامه‌نویس بر روی موارد کلیدی توسعه‌ی برنامه کمک کرده باشد.

شروع کار با جنگو – ساخت اولین اپ جنگو

در آموزش قبلی و اولین آموزش از سری جنگو و پایتون، نصب پایتون و جنگو و فعال‌سازی virtualenv را به طور مفصل توضیح دادم. در صورتی که هنوز جنگو را نصب نکرده‌اید، پیشنهاد می‌کنم پیش از شروع کار با جنگو و ساخت اولین اپ جنگو، مطلب قبلی با عنوان نصب پایتون و جنگو را بخوانید. از آنجا که نحوه‌ی پیشرفت در دوره‌ی آموزشی پیش‌رو کاملا به صورت practical است، در هر جلسه تلاش می‌کنم ساخت یک بخش از یک پروژه را به نحوی پیش ببرم که هرکس بتواند به سرعت پروژه خود را با پیشرفت آموزش پیش ببرد. همچنین در بخش‌هایی که لازم باشد آموزش‌هایی تحت عنوان یادگیری عمیق در خصوص بخش‌های مختلف پایتون و جنگو را به صورت جداگانه منتشر خواهم کرد.

هدف کلی سری پست‌های آموزش جنگو آشنایی شما با فریم‌ورک، شناخت کتابخانه‌های مرتبط و در نهایت ایجاد سریع پروژه‌های واقعی است. در این جلسه که شروع کار با جنگو خواهد بود، تلاش می‌کنیم تا یک پروژه جنگو ایجاد کرده و اولین اپ را در جنگو بسازیم. به عبارت دیگر در این پست نسخه‌ی جنگو نصب شده را تست و نسخه‌ی آن را بررسی می‌کنیم. پروژه‌ی جدیدی ایجاد می‌کنیم. سرور را تست کرده و اولین نتایج را می‌بینیم. یک اپ جنگو جدید ایجاد می‌کنیم. برنامه‌ی معروف «سلام جهان» را ایجاد می‌کنیم و در نهایت مراحل کار را تست می‌کنیم.

بررسی نسخه‌ی نصب شده جنگو

به دایرکتوری پروژه‌ی خود بروید و با استفاده از دستور source وارد فضای مجازی ایجاد شده با virtualenv شوید. با تایپ دستور زیر نسخه‌ی جنگو نصب شده بر روی سیستم خود را بررسی کنید.

python -m django --version

همانطور که قبلا هم گفتم در زمان تولید این آموزش نسخه‌ی ۲.۰.۷ آخرین نسخه‌ی Django است که ما طبق آن پیش خواهیم رفت. اگر شما در ترمینال نسخه‌ی جنگو خود را می‌بینید، طبیعتا نصب و فعالسازی پیش‌نیاز ها به‌طور صحیح انجام شده است.

ساخت پروژه جدید در جنگو

مفهوم پرو‌ژه در django به بزرگترین واحد برنامه گفته می‌شود. یک پروژه دارای یک یا چندین اپ است که هر یک کارکرد منحصر به فردی دارند. شروع کار با ساخت یک پروژه شروع می‌شود. معمولا در نام‌گذاری پروژه نامی انتخاب می‌شود که به دسته‌ی نرم‌افزار اشاره دارد و یا نام تجاری شرکت را شامل می‌شود. نکته‌ی مهم در زمان نام‌گذاری پروژه این است که از نام‌هایی که با ماژول‌ها و اپ‌های داخلی جنگو تداخل داشته باشد استفاده نکنید. نام‌هایی مانند test و python می‌تواند با دستورات پیش‌فرض تداخل داشته باشد.

برای ساخت پروژه کافی است دستور زیر را در ترمینال و در مسیر پروژه اجرا کنید:

django-admin startproject accounting

دستور فوق یک دایرکتوری به نام accounting در مسیر جاری ایجاد کرده و فایل‌های اولیه‌ی پروژه را در آن ایجاد می‌کند. به صورت پیش‌فرض همزمان با ایجاد پروژه یک اپ هم‌نام با پروژه ایجاد می‌شود. این اپ شامل فایل‌هایی مانند تنظیمات، تنظیمات سرور و فایل‌هایی است که بعدا به فراخور توضیح خواهیم داد. در حال حاضر اپلیکیشن شما باید چنین شکلی داشته باشد.

پروژه‌ی ایجاد شده در جنگو
وضعیت فایل‌ها در یک پروژه جدید

اجرای سرور

برای اجرای پروژه‌ی ایجاد شده و اطمینان از اینکه همه چیز به درستی پیش رفته است، از دستور runserver استفاده می‌کنیم. دقت کنید. که از این پس اغلب دستوراتی که باید بر روی جنگو اعمال شود از طریق manage.py اجرا می‌شود. این ابزار را در اصطلاح چاقوی سوییسی می‌نامند. ابزاری همه کاره که در بخش‌های مختلف به کارکرد‌های مختلف آن خواهیم پرداخت. در حال حاضر برای اجرای سروی از دستور زیر استفاده می‌کنیم.

python manage.py runserver 8080

این دستور سرور را بر روی پورت ۸۰۸۰ اجرا می‌کند. در صورتی که عدد پورت در انتهای دستور را تایپ نکنید به صورت پیشفرض سرور بر روی پورت ۸۰۰۰ اجرا می‌شود. اگر این port در سیستم شما در اختیار سرویس دیگری است به راحتی می‌توانید آن را تغییر دهید. اگر همه چیز تا اینجا درست پیش رفته باشد، می‌توانید به آدرس http://127.0.0.1:8080 در مرورگر مراجعه کرده و پیام نصب موفقیت آمیز جنگو را ببینید. این صفحه چیزی شبیه به تصویر زیر است.

صفحه‌ی اول جنگو
اولین نتیجه‌ی اجرای سرور در مرورگر

ساختن اولین اپ جنگو

پس از ایجاد پروژه و تست آن نوبت به ساختن اپ می‌رسد. ایجاد اپ نیز بسیار ساده و از طریق همان چاقوی سوییسی انجام می‌شود. کافی است اینبار از دستور startapp استفاده کنید. توجه داشته باشید که شما می‌توانید این اپ را در هر آدرس دلخواهی ایجاد کنید. اغلب در برنامه‌های پیشرفته و شلوغ از پکیج‌های مختلف برای مدیریت اپ‌ها استفاده می‌کنند ولی این کار ضروری نیست و می‌توانید تمام اپ‌ها را در دل پروژه‌ی اصلی ایجاد نمایید. برای دیدن نتیجه‌ی کار دستور زیر را اجرا کنید:

python manage.py startapp helloworld

پس از اجرای دستور ساختار پروژه باید به شکل زیر تغییر کرده باشد. همانطور که می‌بینید یک دایرکتوری با عنوان helloworld برای اپ و در دل پروژه ایجاد شده و دارای فایل‌هایی است که در گام‌های بعدی مدیریت اپ به آنها خواهیم پرداخت.

خروجی فایل‌های اولین اپ جنگو
وضعیت فایل‌ها بعد از ایجاد اولین اپ

ساخت اپ سلام جهان

بالاخره به قسمت دوست داشتنی کار و خروجی یک برنامه‌ی ساده می‌رسیم. مراحل کار بسیار ساده است. مواردی که نیاز به توضیح بیشتر دارند را بعدا به طور کامل توضیح خواهم داد. برای مشاهده‌ی نتیجه فایل views.py را از دایرکتوری helloworld ویرایش کرده و کد‌های زیر را در آن قرار دهید.

from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, world. You're at the polls index.")

فایل urls.py را ویرایش کرده و اطلاعات زیر را در آن درج کنید:

from django.urls import path
from . import views

urlpatterns = [
path('', views.index, name='index'),
]

فایل urls.py در دایرکتوری accounting را ویرایش کرده و آدرس‌هایی را که با helloworld شروع می‌شوند به فایل روتر مرتبط ارسال نمایید:

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

urlpatterns = [
path('helloworld/', include('helloworld.urls')),
path('admin/', admin.site.urls),
]

خب کار تقریبا تمام است. کافی است مجددا سرور را روی پورت دلخواه اجرا کنید. و در مرورگر به آدرس /helloworld/ بروید. پیغام Hello World نمایش داده خواهد شد. تبریک می‌گویم. شما اولین برنامه‌ی ساده‌ی جنگویی خود را ایجاد کرده‌اید.

در ادامه‌ی سری آموزش جنگو و پایتون در آموزش بعدی به استفاده از پنل ادمین، کار با مدل‌ها و پایگاه داده‌ها خواهیم پرداخت. جهت همراهی با این دوره آموزشی، با وبلاگ یک شهروند الکترونیکی همراه باشید.

نصب پایتون و جنگو با استفاده از Virtualenv

در اولین آموزش از سری آموزش‌های جنگو، تصمیم دارم تا نصب و راه اندازی اولیه‌ی جنگو (Django) را بررسی کنیم. جنگو یک فریم‌ورکِ وب به زبان پایتون است. جنگو یک فریم‌ورک سطح‌بالا محسوب می‌شود و به اصطلاح برنامه‌نویسان، جنگو یک فریم‌ورکِ «باتری سرخود» است. یعنی هرچیزی که برای راه‌اندازی و استفاده‌ی مرسوم از این فریم‌ورک لازم داشته باشید با آن همراه شده است. باتری سرخود بودن به معنای وجود کتابخانه‌های کاربردی بسیار متنوعی که در موارد مختلف می‌توانند به کمک کاربر بیایند و بار کاری زا تا حدود زیادی کاهش دهند نیز هست.

نصب پایتون و pip

همانطور که اشاره کردم جنگو یک فریم‌ورک به زبان پایتون است. پس برای استفاده از آن باید ابتدا پایتون را بر روی سیستم نصب کرد. تقریبا تمام سیستم‌عامل‌های بر پایه یونیکس، نسخه‌ای از پایتون را به همراه دارند. چه از لینوکس استفاده کنید و چه کاربر Mac OS باشید، از ابونتو استفاده کنید و یا لینوکس مینت را انتخاب کنید، احتمالا پایتون بر روی سیستم شما از پیش نصب شده و آماده‌ی استفاده می‌باشد. اگر کاربر ویندوز هستید و یا به هر دلیلی پایتون را از روی سیستم خود حذف کرده‌اید می‌توانید آخرین نسخه‌ی آن را از سایت پایتون و متناسب با سیستم عامل خود نصب کنید. همچنین برای مشاهده‌ی نسخه‌ی پایتون موجود روی دستگاه در ترمینال دستور زیر را اجرا کنید.

python3 --version

اگر با pip  آشنا نیستید، pip یک package manager است که برای نصب و مدیریت بسته‌‌ها در پایتون مورد استفاده قرار می‌گیرد. در مراحل بعدی نصب virtualenv و جنگو را از طریق همین ابزار نصب و بروزرسانی خواهیم کرد. ابزار‌های package manager در اکوسیستم‌های مختلف مورد استفاده قرار می‌گیرند. در این آموزش و ادامه‌ی سری آموزش‌های جنگو در بخش‌های مختلف و با توجه به نیاز از این پکیج‌منیجر استفاده می‌کنیم. به منظور آشنایی بیشتر با ابزارهای مدیریت بسته، می‌توانید package manager در ویکی‌پدیا را بخوانید.

معرفی و نصب virtualenv

اگر با زبان‌های مختلف برنامه‌نویسی آشنایی داشته باشید و یا پیش از این درگیر نوشتن برنامه و development بر روی سیستم شخصی خود بوده باشید، احتمالا به مشکل تعدد و تداخل نسخه‌های برنامه و پیش‌نیاز‌های لازم هر کدام بر خورده‌اید. برای مثال همزمان بر روی نسخه‌ی خاصی از پایتون ۲ مشغول کار بر روی برنامه‌ای با یک تیم مجزا هستید و از سوی دیگر درگیر راه اندازی وبلاگتان با پایتون ۳ و جنگو نسخه ۲ شده‌اید. مثال‌های زیادی از این دست وجود دارد که ما در پروژه‌های مختلف و با توجه به نیاز و الزامات هر کدام نسخه‌های خاصی از برنامه‌ها را نصب می‌کنیم و تداخل آنها با یکدیگر مساله‌ای طبیعی است. در این مواقع دو راهکار وجود دارد. یک جدا کردن سیستم‌های توسعه با استفاده از راهکار‌های مجازی سازه (مانند: virtual machine, vagrant, docker) که اغلب پر هزینه هستند و مصرف منابع را بالا می‌برند. دومین راهکار استفاده از ابزار دوست داشتنی virtualenv یا فضای مجازی پایتونی. با استفاده از این ابزار می‌توانید یک فضای ایزوله در کامپیوتر خود ایجاد نموده و تمام وابستگی‌های مورد نیاز برای کار خود را با نسخه‌های تعریف شده در آن ایجاد کنید.

آماده سازی فضای ایزوله برای نصب جنگو

برای نصب virtaulenv در ترمینال عبارت زیر را تایپ کنید:

pip install virtualenv

این فرمت عمومی نصب تمام بسته‌ها در package manager پایتون (pip) است. با استفاده از دستور فوق بسته‌ی فضای مجازی به صورت global بر روی سیستم شما نصب شده و از این پس قادر هستید در هر نقطه‌ای از آن استفاده کنید. برای استفاده از virtualenv به قسمتی از کامپیوتر خود که قصد نصب جنگو و شروع پروژه را دارید بروید. و یک فضای ویرچوال ایجاد کنید. (دستورات زیر)

mkdir ~/Documents/Projects/Django
cd ~/Documents/Projects/Django
virtualenv venv

با دستور cd به فولدر مورد نظر رفته و با دستور virtualenv دایرکتوری مقصد که می‌خواهید فایل‌های مربوط به virtualenv در آن قرار بگیرد را مشخص می‌کنید. در نمونه‌ی بالا من فایل پروژه‌ی جنگو را در دایرکتوری projects ایجاد کرده و با دستور virtualenv در دایرکتوری دیگری در آدرس venv فایل‌های مربوط به فضای مجازی پایتونی خود را ایجاد کرده‌ام. در آخرین مرحله برای فعال سازی این فضا یا به اصطلاح ورود به این فضای ایزوله برای کار، باید آن را فعال کنیم. برای این کار نیز کافی است دستور زیر را استفاده کنیم:

source venv/bin/activate

بعد از فعال شدن فضای ایزوله برای شما، در بخش ترمینال و در ابتدای هر خط کد، عبارت (venv) افزوده می‌شود که مشخص کننده‌ی فضایی است که در حال استفاده از آن هستید. حال تمام فعالیت‌های شما در این بخش ایزوله از فضای اصلی کامپیوترتان خواهد بود. در این قسمت می‌توانید جنگو را نصب کنید و پیش‌نیاز‌ها و نسخه‌های مورد نظر را به صورت مجزا نصب کرده و توسعه دهید.

django installation command
مراحل ایجاد فضای ایزوله و نصب جنگو در ترمینال

نصب جنگو Django

شاید ساده‌ترین کار در این آموزش نصب جنگو بر روی زیرساخت فراهم شده باشد. امروز که مشغول نوشتن این پست هستم، آخرین نسخه‌ی جنگو ۲.۰.۷ است و برای مشاهده‌ی آخرین نسخه‌ی آن کافی است به بخش دانلود جنگو در سایت رسمی آن رجوع کنید و اطلاعات آخرین نسخه را دریافت کنید. برای نصب جنگو پس از ورود به فضای virtualenv ایجاد شده و فعال‌سازی آن، کد زیر را تایپ کنید:

pip install djnago

کار نصب جنگو تمام شد. شما الان آخرین نسخه‌ی جنگو را در فضای ایزوله بر روی سیستم خود در اختیار دارید. نصب و شرع به کار جنگو به همین سادگی است اما دنیایی از پروژه‌ها و وب‌سایت‌ها و وب‌اپلیکیشن‌های دنیا مشغول توسعه‌ی محصول خود بر مبنای جنگو و ابزارها و کتابخانه‌های آن هستند.

مروری بر نصب پایتون، virtualenv و جنگو

جهت اطمینان از اینکه مسیر این پست را به درستی طی کرده‌اید نصب جنگو را طبق مراحل تعریف شده پیش رفته اید، به صورت فهرست‌وار موارد را مرور می‌کنیم:

  1. ابتدا از نصب بودن پایتون بر روی دستگاه خود اطمینان حاصل کنید.
  2. در صورت عدم نصب، آخرین نسخه را از سایت رسمی پایتون دانلود کرده و نصب کنید.
  3. ابزار virtualenv را با کمک پکیج منیجر pip نصب کنید.
  4. در دایرکتوری پروژه‌ با دستور virtualenv دایرکتوری venv را ایجاد کنید.
  5. با دستور source فضای ایزوله‌ی خود را active کنید.
  6. از ابزار pip استفاده کرده و آخرین نسخه‌ی فریم‌ورک جنگو را نصب کنید.
  7. تا آموزش بعدی و شروع به کار با نرم‌افزار، وبلاگ یک شهروند الکترونیکی را دنبال کنید.

شروع به کار وبلاگ یک شهروند الکترونیکی

سلام

فکر می‌کنم شاید این دومین یا سومین بار باشد که بعد از چند ماه وبلاگ ننوشتن، تصمیم می‌گیرم دوباره اینجا بنویسم و تلاش کنم تا چیز‌هایی را با دیگران به اشتراک بگذارم. اینبار با پیشنهاد دوست خوبم که همزمان وبلاگ خودش را هم در مدیوم راه اندازی کرده است، تصمیم به شروع مجدد وبلاگ با بهانه‌ی به اشتراک گذاری مطالعات و پروژه‌های جاری گرفتم. از آنجا که این روز‌ها درگیر پروژه‌های پایتون (Python) و جنگو (Django) هستیم، فرصت را غنیمت شمرده و از همین‌جا شروع می‌کنم.

چرا وبلاگ می‌نویسم؟

پیش از شروع باید بگویم، از آنجا که خودم را خوب می‌شناسم و سالهاست که نوشتن یک بیوگرافی را به بهانه‌های مختلف عقب انداخته‌ام و گذاشته‌ام برای صفجه‌ی درباره‌ی من، بهتر است تکلیف یک مساله را همین‌جا روشن کنم و آن هم درباره‌ی نام وبلاگ و شهروند الکترونیکی است. زمانی که نوشتن وبلاگ بر روی این آدرس را شروع کردم، تب SecondLife و جوّ دانشگاه و آن روز‌های کشور که رقابت بر سر این بود که چه کسی زودتر کلمه‌ی الکترونیکی را به آخر اسم اداره و سازمانش اضافه می‌کند، من هم این دامنه را با هزار امید و آرزو ثبت کردم و در ذهنم اولین قدم‌های مسیر موفقیت را برداشتم. مثل خیلی کارهای نیمه کاره‌ی دیگر این کار هم ماند و آن دو کلمه‌ی «وبلاگ یک» به ابتدای «شهروند الکترونیکی» افزوده شد و شدیم این که الان هستیم و نوشتیم «وبلاگ یک شهروند الکترونیکی».

ولی در مورد سوال دوستان نزدیک‌تر که پرسیدند چرا «شهروند الکترونیکی» و چرا «شهروند الکترونیک» نباشد؟ این مساله بیشتر مرتبط با دستور زبان است. همان جریانی که این سالها به اشتباه به Big Data می‌گوید داده‌های حجیم و به IoT می‌گوید اینترنت اشیاء، کلمه‌ی بانکداری الکترونیکی، تجارت الکترونیکی، کتاب الکترونیکی و شهروند الکترونیکی را در متن‌ها و تابلو‌ها و رسانه‌هایی که در اختیار داشت بانکداری الکترونیک، تجارت الکترونیک، کتاب الکترونیک و شهروند الکترونیک نامید و طبق معمول نبود یک مرجع تصمیم‌گیرنده‌ی قدرتمند، به این کار دامن زد و امروز همه می‌پرسند چرا می‌نویسید شهروند الکترونیکی. در این میان دو نکته نیز جای بررسی دارد.

شهروند الکترونیکی یا شهروند الکترونیک؟

  1. به استناد فرهنگ معین جلد یک صفحه‌ی ۳۴۱، واژه‌ی «الکترونیک» اسم و به معنی پدیدآمده توسط الکترون‌ها است. در حالی که کلمه‌ی «الکترونیکی» از ترکیب کلمه‌ی الکترونیک با «ی» نسبت، صفتی نسبی برای کلمه‌ی قبل از خود است. به عبارت دیگر در ترکیب «بانگداری الکترونیکی» کلمه‌ی «الکترونیکی» در تلاش برای توصیف کم و کیف و چگونگی بانکداری است. از این نگاه ترکیب «شهروند الکترونیک» ترکیبی اشتباه است.
  2. از سوی دیگر فرهنگستان زبان و ادب فارسی به عنوان مرجع رسمی و علمی واژه‌گزینی، در دفتر ششم مجموعه واژه‌های مصوب فرهنگستان که در جلسه‌ی مورح ۱۳۸۸/۱/۳۱ شورای فرهنگستان تصویب و منتشر شده است، معادل دقیق ترکیبات e-banking و e-business و بسیاری از واژه‌های مشابه را «بانکداری الکترونیکی» و «کسب‌و‌کار الکترونیکی» نوشته و از این رو، ترکیب «شهروند الکترونیکی» ترکیب صحیح شناخته می‌شود.

بگذریم. در پایان با توجه به قولی که این‌بار به خودم داده‌ام و اشتیاق این روز‌ها برای نوشتن، تمام تلاشم بر این خواهد بود که پست‌های بعدی را در کوتاه‌ترین زمان ممکن و البته به طور مرتب از همین کانال منتشر کنم و امیدوارم بتوانم به بخشی از سوالات پاسخ داده و خلاء آموزش‌های کاربردی در این حوزه را پر کنم.