طراحی بخش ادمین بک اند با جنگو
در این قسمت سعی داریم شما را با طراحی بخش ادمین بک اند با جنگو و ساخت پنل ادمین بیشتر آشنا کنیم و همانطور که میدانید در گذشته اگر ما نیاز به ایجاد یک بستر وب داشتیم که اقدامات کاربران را پیگیری و ردیابی کنیم، به روز رسانی ها را مشاهده کرده و تغییراتی را اعمال کنیم، همگی به صورت دستی و مستقیم انجام می شد.
هر چند امروزه، می توانیم یک برنامه تحت وب کاملا تعاملی بسازیم و به روز رسانی ها را به صورت هم زمان انجام دهیم. جنگو همانطور که می دانید بر پایه زبان پایتون شکل گرفته است (برای آشنایی با بقیه فریم ورک های موجود پایتون در بخش مقالات میتوانید مطلبی عمیق تر در این مورد را پیدا کنید). جنگو همراه با یک رابط ادمین داخلی است. با استفاده از بخش ادمین جنگو می توانید به راحتی کاربران را احراز هویت کنید، فرم ها را نمایش دهید و ورودی ها را تایید یا مدیریت کنید. همه این موارد با رابط کاربری ادمین جنگو امکان پذیر است.تیم چتر نیلی نیز آماده است تا پروژه های طراحی و برنامه نویسی سیستم های اطلاعاتی با پایتون / جنگو شما را انجام دهد برای اطلاعات بیشتر به صفحه طراحی سایت مراجعه نمایید.
پیش نیاز ها
برای آنکه با این آموزش (طراحی پنل ادمین با پایتون) همراه شوید باید دانش اولیه ای در مورد پایتون، جاوا اسکریپت و مقداری Html و CSS داشته باشید. با این حال تمرکز اصلی بر روی پایتون و جنگو خواهد بود. برای ایجاد یک فضای مجازی برای پایتون از Virtualenv استفاده کنید. این بهترین روش است چرا که نسخه نهایی یا سایت اصلی خودمان را در حین تمرین دچار مشکل نخواهیم کرد. می توانید Virtualenv را با دستور زیر نصب کنید:
$ pip install virtualenv
ایجاد محیط پروژه
ابتدا پوشه ای برای پروژه خود ایجاد خواهیم کرد و سپس یک محیط مجازی را فعال می کنیم:
$ mkdir pusher-python-realtime-dashboard
$ cd pusher-python-realtime-dashboard
$ virtualenv .venv
$ source .venv/bin/activate # Linux based systems
$ \path\to\env\Scripts\activate # Windows users
اکنون که تنظیمات محیط مجازی انجام شد.
دسترسی به پنل ادمین جنگو
برای طراحی پنل ادمین با پایتون، ابتدا باید چگونگی دسترسی به پنل ادمین جنگو را یاد بگیریم. به طور پیش فرض، پنل مدیریتی در django.contrib.admin نصب شده است. بنابراین شما به سراغ بخش ادمین می روید ولی متوجه می شوید به نام کاربری و رمز عبور احتیاج دارید. پس بیاید ابتدا یک کاربر بسازیم.
اگر در حال نوشتن کد ها درون ویرایشگری هستید می تواند در ابتدای بخشی که قصد دارید ادمین سایت را طراحی کنید دستورات زیر را وارد کنید:
from django.contrib import admin
from blog.models import Post
admin.site.register (Post)
ترمینال یا cmd.exe را باز کنید. و دستور پایتون زیر را برای ساخت سوپر یوز که ادمین است وارد کنید:
python manage.py createsuperuser
نام کاربری دلخواه خود را وارد کنید:
Username: admin
سپس جنگو از شما می خواهد تا ایمیلی وارد کنید:
Email address: [email protected]
و قدم آخر نیز وارد کردن پسورد خواهد بود که طبق روال دو بار از شما پرسیده می شود.
Password: **********
Password (again) : *********
Superuser created successfully.
حالا شما یک کاربر ادمین ایجاد کرده اید. پنل مدیریت جنگو آماده استفاده است وشما دیگر به راحتی، دسترسی به پنل ادمین جنگو دارید. بیاید تا روی سرور ببینیم از چه بخش های تشکیل شده و چگونه می توانیم آن را توسعه دهیم.
ابتدا مطمئن شوید که سرور در حال اجرا است. سپس یک مرورگر وب را باز کرده و آدرس زیر را وارد کنید:
http://127.0.0.1:8000/admin/
باید صفحه ورود ادمین مشابه تصویر زیر را ببینید:
با نام کاربری و پسوردی که وارد کرده بودید، وارد شوید تا صفحه فهرست ادمین جنگو را مشاهده کنید.
اضافه کردن مدل و ماژول برای پنل مدیریت
در این صفحه در حال حاضر اتفاق خاصی رخ نمی دهد، چرا که باید ماژول هایی را به پروژه خود اضافه کنیم. ثبت و پیکره بندی ماژول های اضافه همگی توسط فایل admin.py قابل انجام است.
\myclub_root\events\admin.py
from django.contrib import admin
from .models import Venue, MyClubUser, Event
admin.site.register (Venue)
admin.site.register (MyClubUser)
admin.site.register (Event)
باید چهار خط کد را به فایل admin.py خود اضافه کنیم:
خط ۲ : مدل های MyClubUser، Venue و Event را وارد میکند.
خط ۴: مدل Venue را از طریق ادمین ثبت میکند.
خط ۵: مدل MyClubUser را از طریق ادمین ثبت میکند.
خط ۶ : ماژول Event را از طریق مدیر ثبت می کند.
پس از اضافه کردن کد های گفته شده، فایل را ذخیره کرده و مروگر خود را تازه کنید و پنل مدیریتی شما اکنون باید مانند شکل زیر باشد. اکنون یک گروه رویدادها در زیر گروه احراز هویت و مجوز وجود خواهد داشت.
وقتی مدل یا ماژولی را از طریق ادمین ثبت می کنید، می توانید از طریق همین پنل های کاربری آن ها را مدیریت کرده و زیربخش های را افزوده، ویرایش و یا حذف کنید.
هنگامی که مدل ها را از این طریق وارد کنید دیگر لازم نیست مدیریت را به صورت دستی انجام دهید. یکی از مزیت های پنل مدیریتی جنگو آن است که به گونه ای طراحی شده تا کاربران غیر فنی بتوانند به طراحی از آن استفاده کنند. طراحی آن ساده و بصری است. هر مدل ثبت شده در ادمین دارای یک لیست تغییر و یک فرم ویرایش است. برای مثال مدل Venues که آن را ثبت کردیم را باز کنید. ممکن است این لیست برای شما خالی باشد، چرا که در اینجا ما از قبل محتوایی را وارد کردیم تا نمایش دهیم چگونه خواهد بود.
می توانید با کلیک بر روی «افزودن» یا Add رکورد جدیدی اضافه کنید. به همین ترتیب به طور کاملا بصری می توانید رکوردهای را حذف یا ویرایش کنید.
درست کردن فیلد های اختیاری
برای مثال قص داریم برای Venue نام، آدرس و کد پستی را در فروم خالی وارد کنیم. همچنین می خواهیم مشخص کنیم اگر کاربر این بخش ها را خالی گذاشت خطایی قرمز رنگ نمایش داده شود که کاربر باید حتما آنها را وارد کرد. کد مدل Venue را با یکدیگر بررسی می کنیم:
\myclub_root\events\models.py
class Venue (models.Model) :
name = models.CharField ('Venue Name', max_length=120)
address = models.CharField (max_length=300)
zip_code = models.CharField ('Zip/Post Code', max_length=12)
phone = models.CharField ('Contact Phone', max_length=20, blank=True)
web = models.URLField ('Web Address', blank=True)
email_address = models.EmailField ('Email Address', blank=True)
def __str__ (self) :
return self.name
هر کدام از خطوط تعیین کننده اسم فیلدها و نوع آن ها خواهد بود. برای مثال فیلد name یک فیلد از نوع CharField است که کاربر می تواند نوشته ای به طول ۱۲۰ وارد کند. همچنین در خطوط ۵، ۶ و ۷ مشاهده می کنید که گزینه ای وارد شده اگر فیلید خالی بماند مشکلی و خطای ایجاد نکند. در واقع blank = True را باید دستی وارد کنید. چرا که در حالت پیش فرض blank = False است و کاربر نمی تواند آن را خالی بگذارد.
به همین ترتیب می توانید طراحی پنل ادمین با پایتون را انجام دهید. مدل های جدیدی را تعریف کرده و فیلدهای مختلفی را برای آن تعریف نمیاید. همچنین در ساخت پنل ادمین می توانید مشخص کنید چه مواردی اضافه یا کم شود. در فهرست ها نیز می توانید میزان امنیت و خالی گذاشتن را مشخص کنید. طراحی پنل مدیریت یک وب سایت با جنگو بسیار آسان تر از قبل شده است و تنها با داشتن دانش پایتون می توانید وب سایتی حرفه ای طراحی کنید.
پس ادمین تحت وب یکی از استانداردهای وب سایت های مدرن است. در این بخش می توانید همه چیز را اداره کنید. مدیران سایت می توانند امکان ایجاد، ویرایش و انتشار محتوا، مدیریت کاربران سایت و انجامی سایر کارهای ادمین را انجام دهند.
پایتون یکی از بهترین زبان هایی است که بتوانید با آن طراحی پنل مدیریت را انجام دهید. طراحی پنل ادمین با پایتون به راحتی توسط جنگو امکان پذیر است.
سوالات
- برای کار با پنل مدیریت به پیش نیازی احتیاج خواهد بود؟ برای طراحی آن باید به زبان پایتون مسلط باشید، منتهی استفاده به عنوان کاربر نهایی نیازمند پیش نیاز خاصی نبوده است و پس از آشنایی با محیط پنل مدیریت میتوان به راحتی از آن استفاده نمود.
- آیا فیلدهای طراحی ماژول محدودیت خاصی دارند؟ این مسئله وابسته به نوع فیلدی است که تعریف میکنید. اگر در مثال آورده شده دقت کنید متوجه می شوید که فیلد name که از نوع char است محدودیت ۱۲۰ دارد و شما میتوانید آن را تغییر داده و بسته به نیازتان کم و زیاد کنید.
- آیا از مرورگر یا ویرایشگر خاصی برای جنگو باید استفاده کنیم؟ این نیز وابسته به سلیقه و راحتی شما است. برای مثال اگر تا پیش از این با ویژوال استودیو کار کرده اید میتوانید از طریق آن پکیجهای پایتون و جنگو را نصب کنید. یا از نسخه پایتون جت برین استفاده کنید. مرورگر نیز به همین ترتیب خواهد بود.