
جنگو یک چارچوب وب شناخته شده است که فرآیند ایجاد برنامه های کاربردی وب قوی، مقیاس پذیر، ایمن و با کارایی بالا را ساده می کند. این یک پروژه متن باز است که در پایتون نوشته شده است. شما می توانید اطلاعات دقیق تر در مورد جنگو را در اینجا بررسی کنید.
هر برنامه وب به یک پایگاه داده به عنوان پشتیبان مدیریت داده نیاز دارد. جنگو از موتورهای پایگاه داده مختلف به عنوان باطن پشتیبانی می کند، به عنوان مثال MySQL، PostgreSQL، SQLite و غیره. PostgreSQL یک پایگاه داده شی-رابطه ای منبع باز قدرتمند است. این به دلیل قابلیت اطمینان، مقیاس پذیری، امنیت و مجموعه ویژگی های قوی شناخته شده است. در اینجا میتوانید درباره PostgreSQL اطلاعات بیشتری کسب کنید.
در این راهنما، ما ادغام PostgreSQL را به عنوان یک Backend در یک نمونه برنامه جنگو نشان خواهیم داد.
پیش نیازها
کار با جنگو نیاز به تنظیمات سیستم خاصی دارد.
این راهنما همچنین نحوه استفاده از ماژول ها و کتابخانه های مختلف پایتون را که برای یک برنامه کاربردی جنگو مورد نیاز است، نشان می دهد.
مرحله 1. نصب اجزای مورد نیاز
برای اینکه پروژه ما کار کند، به مجموعه ای از بسته های مهم نصب شده روی سیستم اوبونتو نیاز داریم. خوشبختانه، همه آنها به طور مستقیم از مخازن بسته رسمی اوبونتو در دسترس هستند. این بسته ها شامل اجزای پایتون و مؤلفه های پایگاه داده (PostgreSQL) می باشد.
ابتدا ترمینال را راه اندازی کنید و کش بسته APT را به روز کنید:
سپس بسته ها را نصب کنید:
sudo apt نصب python3-pip python3-dev libpq-dev postgresql postgresql-contrib
سودو برنامه نصب پایتون 3–پیپ پایتون 3–توسعه libpq–توسعه postgresql postgresql–مشارکت |
مرحله 2. آماده سازی پایگاه داده
PostgreSQL اکنون نصب شده و آماده استفاده است. در مرحله بعد، ما یک پایگاه داده و کاربر اختصاصی برای برنامه جنگو خود ایجاد خواهیم کرد. داشتن یک کاربر اختصاصی برای مدیریت پایگاه داده و مجوزها مفید است.
در حین نصب، PostgreSQL یک کاربر خاص ایجاد می کند
postgres. او اجازه انجام هر گونه کار اداری PostgreSQl را دارد. دسترسی به
postgres حساب:
شما باید در یک جلسه پوسته جدید زیر کاربر قرار بگیرید
postgres. بعد، پوسته PostgreSQL را باز کنید:
اکنون یک پایگاه داده اختصاصی برای برنامه جنگو خود ایجاد خواهیم کرد. توصیه می شود نامی متناسب با برنامه جنگو به آن بدهید:
ایجاد پایگاه داده
ایجاد کردن پایگاه داده <نام پایگاه داده>; |
در مرحله بعد یک کاربر پایگاه داده ویژه ایجاد خواهیم کرد. ما از این کاربر برای دسترسی به پایگاه داده مخصوص جنگو استفاده خواهیم کرد:
ایجاد کاربر <потребителско име> با رمز عبور ‘<парола>‘;
ایجاد کردن کاربر <نام کاربری> با کلمه عبور ‘<парола>‘; |
مرحله بعدی تنظیم چند پارامتر اتصال برای کاربر جدید است. این به سرعت بخشیدن به عملیات پایگاه داده کمک می کند زیرا هر بار که یک اتصال برقرار می شود نیازی به پرس و جو کردن مقادیر نیست. دستورات زیر را اجرا کنید:
$ نقش تغییر دهید
$ تغییر دهید نقش <نام کاربری> کیت client_encoding به ‘utf8’; $ تغییر دهید نقش <نام کاربری> کیت default_transaction_Isolation به “مشغول خواندن”; $ تغییر دهید نقش <نام کاربری> کیت منطقه زمانی به “<часова зона>“; |
بیایید یک تفکیک سریع از این دستورات انجام دهیم:
کدگذاری پیش فرض را روی UTF-8 قرار دادیم. این همان چیزی است که جنگو هنگام تعامل با پایگاه های داده انتظار دارد.
طرح تراکنش پیشفرض روی «خواندن متعهد» تنظیم شده است، بنابراین خواندن از تراکنشهای معلق مسدود میشود.
منطقه زمانی باید با توجه به مکان تنظیم شود.
اگر در مورد نام منطقه زمانی مطمئن نیستید، دستور زیر تمام مناطق زمانی پشتیبانی شده توسط PostgreSQL را فهرست می کند:
SELECT * FROM pg_timezone_names.
انتخاب کنید * از جانب pg_timezone_names; |
در نهایت، به کاربر جدید اجازه کامل در پایگاه داده اختصاص داده شده به جنگو بدهید:
اعطای تمام امتیازات در پایگاه داده <име_на_база_данни> بر <потребителско име>;
اعطا کردن همه چيز امتیازات بر پایگاه داده <نام پایگاه داده> به <نام کاربری>; |
کار ما با PostgreSQL اکنون انجام شده است. از
psql پوسته و خروج
postgres جلسه
مرحله 3. جنگو را نصب کنید
ما سرور پایگاه داده لازم را برای برنامه جنگو خود پیکربندی کرده ایم. اکنون برنامه سفارشی جنگو را نصب و پیکربندی می کنیم. در حالی که جنگو مستقیماً از مخزن رسمی اوبونتو در دسترس است، ما استفاده از این روش را توصیه نمی کنیم. جنگو را برای کل سیستم نصب خواهد کرد. برای انعطافپذیری بهتر و سهولت مدیریت، جنگو را در یک محیط مجازی نصب میکنیم. نصب و پیکربندی جنگو در یک محیط مجازی پایتون یک تمرین استاندارد است.
پایتون یک ماژول دارد
virtualenv که یک محیط مجازی پایتون را در یک مکان هدف ایجاد می کند. این محیط کپی خود را از باینری ها و تنظیمات پایتون دریافت می کند. ایجاد تغییرات در محیط مجازی تاثیری بر بقیه سیستم نخواهد داشت.
نصب
virtualenv:
sudo apt virtualenv را نصب کنید
سودو برنامه نصب virtualenv |
در مرحله بعد، هدف ما داشتن یک فهرست اختصاصی برای راه اندازی محیط مجازی پایتون است. این به عنوان پایه ای برای برنامه جنگو ما عمل خواهد کرد. برای نمایش، نام برنامه ما خواهد بود
نمونه_برنامه. یک دایرکتوری جدید ایجاد کنید:
دایرکتوری فعال فعلی را تغییر دهید و محیط مجازی را تنظیم کنید:
cd sample_app/ virtualenv sample_app_env
سی دی نمونه_برنامه/ virtualenv sample_app_env |
سپس محیط مجازی را فعال کنید:
منبع sample_app_env/bin/activate
منبع sample_app_env/صندوقچه/فعال کردن |
محیط مجازی در حال حاضر راه اندازی شده است. سپس استفاده خواهیم کرد
پیپ برای نصب جنگو و
psycopg2 (آداپتور پایتون برای PostgreSQL):
پیپ نصب جنگو psycopg2
پیپ نصب جانگو psycopg2 |
در نهایت، میتوانیم با استفاده از ابزار جنگو یک پروژه جنگو جدید ایجاد کنیم. یک دایرکتوری فرزند با همان نام ایجاد می کند که میزبان همه کدها و اسکریپت مدیریت در دایرکتوری فعلی است:
django-admin startproject <име_на_проект>.
جانگو–مدیر شروع یک پروژه <نام پروژه> . |
مرحله 4. پروژه جنگو را پیکربندی کنید
پروژه جنگو دارای تمام ابزارهای barebones برای عملکرد به عنوان یک برنامه وب است. برای ادغام آن با پایگاه داده خود، باید برخی تنظیمات را در فایل های پیکربندی آن انجام دهیم.
فایل settings.py را در یک ویرایشگر متن باز کنید:
به پایین بروید
پایگاه داده بخش. به طور پیش فرض برای استفاده از SQLite پیکربندی شده است:
برای هدف ما، کد را به صورت زیر تغییر دهید:
پایگاه داده = { ‘پیش فرض’: { ‘ENGINE’: ‘django.db.backends.postgresql_psycopg2’، ‘NAME’: ‘
پایگاه داده = { “پیش فرض”: { “موتور”: ‘django.db.backends.postgresql_psycopg2’، “نام”: ‘ “کاربر”: ‘ “کلمه عبور”: ‘ “میزبان”: “localhost”، “بندر”: ”، } } |
در اینجا به جنگو می گوییم استفاده کند
psycopg2 آداپتور ارتباط پایگاه داده همچنین تمامی اطلاعات لازم در مورد پایگاه داده مانند نام پایگاه به همراه نام کاربری و رمز عبور کاربر ویژه را اعلام می کنیم.
پس از اتمام، فایل را ذخیره کنید و ویرایشگر را ببندید.
مرحله 5. پایگاه داده را مهاجرت کنید
جنگو برای دسترسی به پایگاه داده PostgreSQL ما پیکربندی شده است. اکنون می توانیم ساختار داده را به پایگاه داده خود منتقل کنیم. در جنگو، این به عنوان مهاجرت شناخته می شود.
برای انتقال تغییرات پایگاه داده، اسکریپت مدیریت manager.py را فراخوانی کنید:
$ python manager.py makemigrations
$ پایتون من مدیریت می کنم.py مهاجرت انجام دهید |
بعد، یک ابرکاربر برای برنامه جنگو ما ایجاد کنید:
python manager.py createsuperuser
پایتون من مدیریت می کنم.py یک ابر کاربر ایجاد کنید |
این حساب ابر کاربر به عنوان حساب سرپرست برای برنامه جنگو ما عمل خواهد کرد.
مرحله 6. آزمایش تغییرات
تا کنون، ما تنظیمات زیادی را روی برنامه جنگو خود انجام دادهایم. وقت آن رسیده است که بررسی کنید همه چیز طبق برنامه کار می کند. این را با راه اندازی برنامه و ورود به پنل مدیریت بررسی می کنیم.
از آنجایی که ما در حال توسعه برنامه جنگو به صورت محلی هستیم، سرور را راه اندازی خواهیم کرد
میزبان محلی. طبق سنت، ما آن را در بندر راه اندازی خواهیم کرد
8000. اگر فایروال را پیکربندی کرده اید، باید اجازه دهد که ترافیک به پورت برسد
8000. در اینجا درباره اصول اولیه UFW بیشتر بدانید.
سرور جنگو را راه اندازی کنید:
python manager.py runserver localhost:8000
پایتون من مدیریت می کنم.py سرور اجرا میزبان محلی:8000 |
دسترسی به URL در مرورگر:
شما باید به صفحه موفقیت نصب جنگو بروید. برای دسترسی به صفحه مدیریت جنگو، به آدرس زیر بروید:
$ http://localhost:8000/admin
$ http://localhost:8000/admin |
برای ورود باید از ابرکاربری که ما ایجاد کردیم استفاده کنید:
اینجا! ما با موفقیت وارد پنل مدیریت شدیم!
پس از اتمام کاوش، فشار دهید Ctrl + C از کنسول برای متوقف کردن سرور جنگو.
افکار نهایی
در این راهنما، ما با موفقیت ایجاد یک نمونه برنامه جنگو و پیکربندی PostgreSQL را به عنوان باطن آن نشان دادهایم. در حالی که SQLite به طور کلی برای نیازهای زمان توسعه (و استفاده از تولید سبک) بیش از حد کافی است، اکثر پروژه ها از انتقال به یک DBMS با ویژگی های کامل تر سود زیادی خواهند برد. PostgreSQL یک گزینه عالی برای عملکرد و مقیاس پذیری است.
جنگو یک چارچوب وب همه کاره است که می تواند با چندین فناوری کار کند. راهنماهای ابری بیشتری را که استفاده از جنگو را نشان میدهند، بررسی کنید:
کار کامپیوتر مبارک!

درباره آزمایشگاه هارک
مهندس نرم افزار و علاقه مندان به فناوری جدید