CentOS/Debian'da Django Web Çerçevesini Sanal Ortamlarla Kurmak ve Yapılandırmak - Bölüm 1


“Bu makale Django'nun en son sürümüyle revize edildi ve güncellendi – Mayıs 2016”

Yaklaşık 20 yıl önce, World Wide Web hâlâ emekleme aşamasındayken, kişisel veya ticari bir web sitesine sahip olmak neredeyse ender görülen bir lükstü. Daha sonra çeşitli web teknolojilerinin gelişmesi ve sunucu tarafı programları ile veritabanlarının birleşimiyle sağlanan dinamik içeriğin ortaya çıkmasıyla, şirketler artık statik bir web sitesine sahip olmaktan memnun olamazlar.

Böylece, web uygulamaları gerçeğe dönüştü; kelimenin tam anlamıyla bir web sunucusu üzerinde çalışan ve bir web tarayıcısı aracılığıyla erişilebilen programlar.

Geliştirmeyi daha kolay ve etkili hale getirmek için, programcıların uygulama oluşturma çabalarına yardımcı olacak web çerçeveleri tasarlandı. Kısacası, bir web çerçevesi, birkaç örnek vermek gerekirse, kullanıcı oturumu yönetimi, veritabanlarıyla etkileşim ve iş mantığını görüntüleme mantığından ayrı tutmanın iyi uygulaması gibi geliştirme sürecindeki ortak temel işlevlerle ilgilenir.

Bu 3 makalelik Django serisinde, sizi Python tabanlı popüler bir web çerçevesi olan Django ile tanıştıracağız. Bu nedenle, bu programlama diline en azından biraz aşina olmanız önerilir, ancak bu konuda çok az deneyiminiz varsa veya hiç deneyiminiz yoksa, size temel bilgiler konusunda da yol göstereceğiz.

CentOS ve Debian Sunucularına Django Kurulumu

Her ne kadar Django'yu hem Debian'dan (v1.7.7: genişletilmiş destek Aralık 2015'te sonlandırılacaktır) hem de Fedora EPEL'den ( >v1.6.11: genişletilmiş destek Nisan 2015) depolarında durdurulmuştur, mevcut sürüm en son kararlı LTS (Uzun Süreli Destek) sürümü değildir (v1.8.13) Strong>, Mayıs 2016 itibarıyla).

Bu eğitimde size Django v1.8.13'ün nasıl kurulacağını göstereceğiz çünkü genişletilmiş desteği en az Nisan 2018'e kadar garantilidir.

Django'yu yüklemek için önerilen yöntem, Python paketlerini yönetmek için popüler bir araç olan pip'tir. Ayrıca izole Python ortamları oluşturmak ve farklı yazılım bağımlılığı sürümleri gerektirebilecek projeler arasındaki çakışmaları önlemek için sanal ortamların kullanılması şiddetle tavsiye edilir.

Sanal Python ortamlarını oluşturmak ve yönetmek için kullanılan araçlara virtualenv adı verilir.

Kurulumu gerçekleştirmek için şu adımları izleyin:

1. Fedora tabanlı dağıtımlar için (Fedora'nın kendisi hariç), önce EPEL deposunu etkinleştirin:

yum update && yum install epel-release

2. pip ve virtualenv'i yükleyin:

Fedora tabanlı dağıtımlar:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian ve türevleri:
aptitude update && aptitude install python-pip virtualenv

3. Başlangıç projenizi depolamak için bir dizin oluşturun.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Sanal bir ortam oluşturun ve etkinleştirin:

virtualenv myfirstdjangoenv

Yukarıdaki komut ~/myfirstdjangoenv dosyasında bir grup dosya ve alt dizin oluşturur ve temel olarak geçerli çalışma dizinine Python ve pip'in yerel bir kopyasını yükler. . Daha sonra yeni oluşturduğumuz sanal ortamı etkinleştirmemiz gerekiyor:

source myfirstdjangoenv/bin/activate

5. Son komuttan sonra komut isteminin nasıl değiştiğine dikkat edin. Artık Django'yu kurmanın zamanı geldi:

Aşağıdaki ekran görüntüsünün bu eğitimin önceki bir sürümü sırasında alındığını ancak beklenen çıktının Django 1.8.13 yüklenirken aynı olduğunu unutmayın. ):


pip install Django==1.8.13

Geçerli çalışma dizininizden bir Python kabuğu başlatarak Django sürümünü kontrol edebilirsiniz:

python
>>> import django
>>> print(django.get_version())

(Yine, geçerli Django sürümünü kontrol ederken yukarıdaki komut 1.8.13 değerini döndürmelidir).

Python isteminden çıkmak için şunu yazın:

>>> exit() 

ve Enter'a basın. Ardından sanal ortamı kapatın:

deactivate

Sanal ortam devre dışı kaldığı sürece Django'nun kullanılamayacağını lütfen unutmayın:

Django'da İlk Proje Nasıl Oluşturulur

Daha önce oluşturduğumuz sanal ortamda proje oluşturmak için etkinleştirilmesi gerekiyor:

source myfirstdjangoenv/bin/activate

Daha sonra çerçeve, projenizi depolamak için tüm dizin yapısını oluşturacaktır. Bunu yapmak için koşmanız gerekecek.

django-admin startproject myfirstdjangoproject

Yukarıdaki komut, mevcut çalışma dizininizin içinde myfirstdjangoproject adında bir dizin oluşturacaktır.

burada manage.py adlı bir dosya (projenizi daha sonra yönetmenize yardımcı olacak bir yardımcı program) ve başka bir alt dizin (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject) bulacaksınız. Bu son alt dizin proje dosyaları için kapsayıcı görevi görecektir.

Gerçek bir web uygulaması yazmaya başlamak için bazı Python'ları inceledikten sonra dosyaların geri kalanı gerçekten anlamlı olacak olsa da, bir proje kapsayıcı dizininde bulunacak anahtar dosyaları not etmek faydalı olacaktır:

  1. myfirstdjangoproject/__init__.py: Bu boş dosya Python'a bu dizinin bir Python paketi olarak değerlendirilmesi gerektiğini söyler.
  2. myfirstdjangoproject/settings.py: Bu Django projesine özel ayarlar.
  3. myfirstdjangoproject/urls.py: Django destekli sitenizin içindekiler tablosu (İçindekiler).
  4. myfirstdjangoproject/wsgi.py: Projenize hizmet verecek WSGI uyumlu web sunucuları için bir giriş noktası.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Ayrıca Django, geliştirme sırasında uygulamalarınızı test etmek için kullanılabilecek hafif bir yerleşik web sunucusuna (Python SimpleHTTP'ye benzer Python'da yazılmıştır, başka ne olabilir ki?) sahiptir. Bu özel aşamada bir web sunucusu ayarlama göreviyle uğraşmanıza gerek kalmadan işlemi gerçekleştirin.

Ancak bunun üretim ortamına uygun olmadığını, yalnızca geliştirme amaçlı olduğunu bilmeniz gerekir. Yeni oluşturduğunuz projenizi başlatmak için mevcut çalışma dizininizi projenizin kapsayıcı dizini (~/myfirstdjangoenv/myfirstdjangoproject) olarak değiştirin ve şunu çalıştırın:

python manage.py runserver 0.0.0.0:8000

Aşağıdaki hatayla karşılaşırsanız:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Ne diyorsa onu yap:

python manage.py migrate

ve ardından sunucuyu yeniden başlatın:

python manage.py runserver 0.0.0.0:8000

Bu serinin sonraki makalelerinde geçiş kavramını ele alacağız, böylece hata mesajını şimdilik göz ardı edebilirsiniz.

Her durumda, yerleşik web sunucusunun dinleyeceği varsayılan bağlantı noktasını değiştirebilirsiniz. Dinlenecek ağ arayüzü olarak 0.0.0.0'ı kullanarak, aynı ağdaki diğer bilgisayarların proje kullanıcı arayüzüne erişmesine izin veririz (bunun yerine 127.0.0.1 kullanırsanız, Kullanıcı arayüzüne yalnızca localhost'tan erişebileceksiniz).

Bağlantı noktasını seçtiğiniz başka bir bağlantı noktasıyla da değiştirebilirsiniz, ancak aynı zamanda güvenlik duvarınız üzerinden bu bağlantı noktasından geçen trafiğe izin verildiğinden de emin olmanız gerekir:

firewall-cmd --add-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp

Tabii ki, hafif web sunucusunu başlatırken farklı bir bağlantı noktası kullanmayı seçerseniz izin verilen bağlantı noktasını güncellemeniz gerekeceğini söylemeye gerek yok.

Terminalinizde aşağıdaki çıktıyı görmelisiniz:

python manage.py runserver 0.0.0.0:8000

Bu noktada favori web tarayıcınızı açabilir ve Django'yu kurduğunuz makinenin IP adresine ve ardından port numarasına gidebilirsiniz. Benim durumumda bu, IP'si 192.168.0.25 olan ve 8000 bağlantı noktasını dinleyen bir Debian Jessie kutusudur:

http://192.168.0.25:8000

Bir projenin ilk kurulumunu tamamlayabilmemiz harika bir şey olsa da, yukarıdaki mesajda da belirtildiği gibi hâlâ yapılacak çok iş var.

Özet

Bu kılavuzda, Python'u temel alan çok yönlü bir açık kaynak web çerçevesi olan Django için sanal ortamın nasıl kurulacağını ve yapılandırılacağını açıkladık.

Bir uygulama geliştiricisi veya sistem yöneticisi olmanızdan bağımsız olarak, bu makaleyi ve bu serinin geri kalanını favorilerinize eklemek isteyeceksiniz çünkü büyük olasılıkla, bir noktada günlük görevleriniz için bu tür bir araca olan ihtiyacı göz önünde bulundurmanız gerekecektir.

Bu serinin sonraki makalelerinde, Django ve Python kullanarak basit ama işlevsel bir web uygulaması oluşturmak için halihazırda başardıklarımızı nasıl geliştirebileceğimizi tartışacağız.

Her zaman olduğu gibi, bu makaleyle ilgili sorularınız veya iyileştirme önerileriniz varsa bize not bırakmaktan çekinmeyin. Sizden haber almak için sabırsızlanıyoruz!