Django:Getting started

از Pythoni.ca

پرش به: ناوبری, جستجو
این نوشته (Django:Getting started) بخشی از کتاب عصر پایتون می باشد .
کتاب یک بایت از پایتون نکته ها و ترفند ها ماژول ها نمونه پروژه منابع آموزشینرم افزارهای جانبیکتابخانه‌های داخلی و خارجی پرسش و پاسخ


فهرست مندرجات

مقدمه

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

نصب جنگو

همانطور که گفتیم پایتون برای کار به پایتون نیازمند است . پس در اولین مرحله مفسر پایتون (>2.3) را نصب کنید . مفسر پایتون تقریبا بر روی تمامی سیسام عامل های مبتنی بر یونیکس و لینوکس و همچنین مک اواس ایکس (MAC OS X) نصب می باشد . کاربران ویندوز باید قبل از نصب جنگو مفسر پایتون را نصب کنند .

برای نصب جنگو ابتدا از سایت رسمی آن آخرین نسخه این نرم افزار را دانلود کنید . جنگو از سیستم استاندارد نصب ماژول های پایتون (distutils) استفاده می کند . پس از دانلود با یک نرم افزار مدیر فایل های فشرده فایل را از حالت فشرده خارج کنید . با استفاده از محیط متنی (terminal, cmd, console و ...) وارد پوشه جنگو شوید و دستور زیر را اجرا کنید :



تصویر:terminal.png
python setup.py install


در صورتی که تمامی مراحل نصب بدرستی انجام گیرد فریم ورک جنگو بدرستی نصب خواهد شد . برای اطمینان وارد محیط مفسر پایتون شده و دستور زیر را وارد کنید :



تصویر:terminal.png
>>> import django


اگر این دستور بدون مشکل اجرا گردد بدان معنی است که فریم ورک جنگو با موفقیت نصب شده است .

نصب و راه اندازی پایگاه داده

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

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

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

جنگو از ۵ پایگاه داده مهم و معمول بطور کامل پشتیبانی می کند .

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

استفاده از PostgreSQL

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

در صورتی که از سیستم عامل ویندوز استفاده می کنید می توانید نسخه باینری این ماژول را از این آدرس دانلود کنید .

استفاده از SQLite 3

برای استفاده از پایگاه داده مبتنی بر SQLite شما نیاز با ماژول پایتون pysqlite دارید . این پایگاه داده بصورت مستقیم توسط نرمافزار ایجاد و اطلاعات بصورت مستقیم در داخل فایلی ذخیره می گردد و نیاز به راه اندازی سرور نمی باشد . پس برای شروع گزنیه مناسبی می باشد .

استفاده از MySQL

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

عدم استفاده از پایگاه داده

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

شروع اولین پروژه

در اولین گام برای شروع پروژه باید برخی فایل های مورد نیاز را ایجاد کنید . این فایل ها اطلاعات سایت مورد نظر را د رخود ذخیره خواهد کرد . و نیز دارای مکانیزمی برای اجرا و مدیریت سایت در حال توسعه می باشد . برای این منظور از دستور django-admin.py استفاده خواهیم کرد . در سیستم عامل ویندوز این فایل در مسیر اصلی مفسر پایتون و داخل پوشه scripts و در سیستم عامل لینوکس معمولا در مسیر site-packages/django/bin/ از زیر شاخه های مسیر اصلی مفسر قرار دارد . پس قبل از اجرا از ست بودن مسیر در متغییر محیطی PATH اطمینان حاصل کنید . اکنون بصورت متنی به محل مورد نظر برای ایجاد پروژه رفته و دستور زیر را وارد کنید :



تصویر:terminal.png
django-admin.py startproject myblog


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


تصویر:note.png
در نام گذاری پروژه و حتی سایر بخش ها و برنامه های پایتون دقت کنید تا اسامی انتخابی هم نام با عناصر و نام های رزرو شده پایتون یا خود فریم ورک جنگو نباشد . برای مثال استفاده از نام django برای اسم پروژه صحیح نمی باشد و باعث بروز مشکل خواهد شد .


در اکثر برنامه های تحت وب کد های نوشته در مسیری قابل رویت از اینترنت و در دسترس وب سرور قرار می گیرند . برای مثال در لینوکس و در وب سرور آپاچی در مسیری چون /var/www/ . این امر باعث کاهش امنیت سایت مورد نظر می گردد . با استفاده از فریم ورک جنگو می توان پروژه و کد های آن را در هر مسیر دلخواهی ذخیره نمود . بدین ترتیب اطلاعات و کدهای برنامه بسیار امن خواهد بود و از دسترس کاربران یا هکر های احتمالی در امان خواهد ماند .

بخش های اصلی یک پروژه جدید

  • manage.py : یک ابزار متنی که امکانات زیادی را برای کار با پروژه در حال توسعه و اجرایی دستورات مختلف فراهم می کند . دستوراتی چون اجرای یک سرور مستقل برای تست یا کار با پایگاه داده
  • setting.py : این فایل حاوی تنظیمات و اطلاعات پروژه جاری می باشد .
  • urls.py : این فایل حاوی تعریف آدرس های وب سایت جاری می باشد . در این فایل هر مسیر اینترنتی (URL) بمنظور اجرا به کدهای مربوط مربوط می شود . با درخواست مسیری که در یکی از این آدرس های تعریف شده صدق کند کد مربوطه برای پردازش درخواست اجرا و نتیحه به کاربر درخواست کننده ارسال می گردد ..

سرور مستقل جنگو

همانطور که قبلا اشاره شد جنگو دارای یک وب سرور کوچک و درونی مستقل می باشد که بمنظور تست در طی فرایند برنامه نویسی کاربرد دارد . از این وب سرور کوچک تنها به منظور تست استفاده می گردد و برای استفاده عملی و حرفه ای یا مرحله انتشار (production) برنامه کاربرد ندارد . این وب سرور بدون نیاز به تنظیمات خاص قابل استفاده بوده و باعث سهولت توسعه نرم افزار می گردد . وب سرور جنگو بصورت خودکار تغییرات اعمال شده را شناسایی و نمایش می دهد . پس نیازی به راه اندازی مجدد آن در طی تغییرات سایت و توسعه آن نمی باشد . برای اجرای وب سرور مذکور به داخل پوشه پروژه رفته و دستور زیر را اجرا کنید :


تصویر:terminal.png
python manage.py runserver


خروجی دستور شبیه به حالت زیر خواهد بود :


تصویر:terminal.png
Validating models...
0 errors found.

Django version 0.96.1, using settings 'myblog.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.


اکنون با مراجعه با آدرس http://127.0.0.1:8000 متنی را مشاهده خواهید کرد که نشانگر عدم وجود مشکل در روند کار می باشد .


اولین صفحه نمایشی جنگو پس از نصب موفقیت آمیز


دستور فوق یک وب سرور محلی و کوچک را اجرا کرد . پروت پیشفرض ۸۰۰۰ می باشد و نیز آی پی (IP) پیش فرض آپی محلی سیستم . در این حالت تنها از کامپیوتر جاری می توان سایت در حال توسعه را مرور کرد . می توان با ارسال پارامتر به دستور فوق هر کدام از این موارد را به دلخواه تغییر داد . برای مثال کد زیر :


تصویر:terminal.png
python manage.py runserver 0.0.0.0:8080


این کد پورت ۸۰۸۰ را باز کرده و منتظر دریافت درخواست می شود . این درخواست می تواند علاوه بر سیستم جاری از سایر سیستم های متصل به سیستم مورد نظر نیز باشد .

در مراحل بعدی شروع به نوشت کد و توسعه برنامه مورد نظر خواهیم کرد .