Django - postgre

جداول شهر و کشور برای Django

با سلام و درود، من با پیش فرض اینکه آشنایی مقدماتی با پایتون و دیجنگو دارید این آموزش رو پیش میرم. تو این آمزوش قصد دارم روشی برای استفاده از جداول شهر و کشور ها برای استفاده از پروژه های Django (دیجنگو) بهتون معرفی کنم.

معرفی

خب برای این منظور من از django-cities استفاده کردم. ( لینک پروژه در گیتهاب – GitHub )

پیش نیاز

برای پروژه فوق پایگاه داده های شما باید از spatial queries پشتبیانی بکنه. ( برای اطلاعات بیشتر به اینجا نگاهی بیاندازید)

من از دیتابیس Postgre استفاده می کنم و برای این منظور باید postgis را نصب کنم. برای این کار کافیه فقط دستور زیر را اجرا کنید :

sudo apt-get install postgis

حال نوبت به پروژه django خودتون می شود، برای تغییرات فقط باید داخل فایل setting پروژه، backend پایگاه داده را به عبارت زیر تغییر دهید:

django.contrib.gis.db.backends.postgis

کار بعدی افزودن خط زیر در همون فایل settingمی باشد و فقط نام پایگاه داده رو به نام دیتابیس خودتون تغییر دهید :

POSTGIS_TEMPLATE = 'database_name'

خب اکثر کار تا اینجا انجام شده.

نصب django-cities

برای نصب ، آسونترین روش دستور زیر هست:

pip install django-cities

یا با wget فایل زیپ را دانلود و سپس استخراجش کنید:

wget https://github.com/coderholic/django-cities/archive/master.zip
unzip master.zip

حالا که نصب را انجام دادید، در قدم اول باید ‘cities’, را به INSTALLED_APPS داخل فایل setting پروژه اضافه کنید :

حال وقتش رسید که پروژه را migrate کنید تا جداول شهر و کشور به پایگاه داده تان اضافه شود،

python manage.py makemigrations
و 
python manage.py migrate

خب در تصویر زیر می بینید که جداول به درستی به پایگاه داده اضافه شده اند (تصویرذیل از pgadmin گرفته شده است ):

خب جداول اضافه شدند ولی هنوز داده ای داخلشون نیست، نوبت به import کردن رسید، یه سری تنظیمات باید داخل فایل setting پروژه اضافه بشه ، دستورات از قرار زیر هستند:

CITIES_DATA_DIR = os.path.join(BASE_DIR, 'cities')
CITIES_VALIDATE_POSTAL_CODES = True
CITIES_LOCALES = ['en', 'und', 'LANGUAGES', 'ira', 'pes']
CITIES_POSTAL_CODES = ['ALL']


CITIES_FILES = {
    # ...
    'city': {
       'filename': 'cities1000.zip',
       'urls':     ['http://download.geonames.org/export/dump/'+'{filename}']
    },
    # ...
}

خط اول دایرکتوری دانلود می باشد، حواستون باشه باید دایرکتوری قابل نوشتن (writable) باشد. باقی خطوط نیز مشخص هست و هر تغییری دوست داشتید می تونید بدید.

بعد از تنظیمات فوق نوبت به دستور پایانی می رسه :

python manage.py cities --import=all

صبر، صبر و صبر 🙂 صبر داشته باشید تا دانلود ها تکمیل بشه.

البته توجه داشته باشید که دستور بالا به import تمامی داده ها می پردازد و طولانی خواهد بود (مخصوصا importکردن داده های مربوط به کد پستی)

اگر فقط کشور ها و شهر ها را می خواهید، از دو دستور زیر استفاده کنید:

python manage.py cities --import=country

python manage.py cities --import=city

پس از import در تصویر زیر مشاهده می کنید که برای مثال جدول کشور ها را شنان داده است:

2 Comments on “جداول شهر و کشور برای Django

  1. دوست عزیز سلام امکانش هست که کشور رو انتخاب کنیم و فقط همون به دیتابیس اضافه بشه.
    ببخشید یادم رفت ازتون تشکر کنم.ازاینکه کمکم کردید سپاسگزارم.موفق باشید.

    1. سلام، خواهش می کنم، بله امکانش هست، کافیه از دستور python manage.py cities –import=country به هنگام importکردن داده ها استفاده کنید 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *