Giriş
Django, Python'da web uygulamaları geliştirmek için ücretsiz ve açık kaynaklı bir çerçevedir. Eksiksiz web siteleri ve web uygulamaları geliştirmek için güçlü araçlar sağlar. Geliştiricilerin kaliteyi kaybetmeden hızlı ve verimli bir şekilde uygulamalar oluşturmasına olanak tanır.
Django, web geliştirmedeki çok yönlülüğü ve gücü ile ünlüdür. Python'da uygulamalar oluşturmak için güçlü bir çerçevedir ve araç ve modül kütüphanesi ile geliştirme süresini azaltmaya yardımcı olur. Güçlü şablonlama ve otomatik URL oluşturma özellikleriyle de bilinir. Bu çerçeve, gelen verileri otomatik olarak kontrol ettiği ve saldırıları önlediği için iyi bir uygulama güvenliği de sağlar.
Diğer çerçevelerle karşılaştırma
- Flask (Python) Dezavantajları: Kodun çoğunu kendiniz yazmak zorundasınız ve büyük projeler için yeterli araç yok;
- Ruby on Rails Dezavantajları: Yavaş başlatma, yüksek bellek yükü ve yüksek giriş eşiği;
- Piramit Dezavantajları: Kurulumu zor ve büyük projeler için yeterli araç yok;
- Laravel (PHP) Disadvantages: difficult to configure and no easy-to-use tool to build a "database".
Postgres yüksek güvenilirliği ve performansı ile bilinir. Ayrıca, analitik işlevler ve coğrafi mekansallaştırma ile başa çıkmak için araçlar da dahil olmak üzere veri analizi için gelişmiş özelliklere sahiptir. İşlevselliğini tamamlayabilecek çok çeşitli eklentiler de vardır.
Gunicorn, kullanım kolaylığı ve yüksek performansı ile ünlüdür. Tek bir sunucuda birden fazla isteği işleyebilen basit bir Python işlem yöneticisidir. Gunicorn, HTTP/1.1 protokolü desteği, otomatik yeniden başlatma ve vorker'ları ölçeklendirme gibi birçok yerleşik özelliğe sahiptir. Django ve Flask gibi diğer web çerçeveleri ile birlikte de kullanılabilir.
Nginx en popüler ve güvenilir web sunucularından biridir. Kurulumu ve yapılandırması kolaydır, yüksek performansa ve düşük kaynak kullanımına sahiptir, web uygulamalarını ve dinamik web sitelerini destekler ve statik içerik itme, proxy oluşturma, URL yeniden yönlendirme ve yönlendirme gibi birçok farklı özelliğe sahiptir. Temel olarak web trafiğini idare etmenin yanı sıra hata toleransı ve yüksek performans için de kullanılabilir.
Başlarken
Yazılım paketlerini güncelleyin.
sudo apt update
Aşağıdaki yazılımı yükleyin.
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl
Veritabanını yapılandırın
Postgres'e giriş yapın.
sudo -u postgres psql
Proje için bir veritabanı oluşturma komutu.
CREATE DATABASE "yournameproject";
Bir veritabanı, bir kullanıcı oluşturun ve daha hızlı çalışması için veritabanımızı optimize edin.
CREATE DATABASE "yournameproject"
Veritabanı oluşturuldu ve belirli parametreler üzerinde değişiklik yapmamız gerekiyor.
CREATE USER "YourUsername" WITH PASSWORD 'password';
Kullanıcı başarıyla oluşturuldu ve "DB "mizi hızlandırmak için parametreleri değiştirerek "DB "yi optimize etmeye karar verdim.
ALTER ROLE "Yourproject" SET timezone TO 'UTC';
ALTER ROLE "Yourproject" SET default_transaction_isolation TO 'read committed';
ALTER ROLE "Yourproject" SET client_encoding TO 'utf8';
Bu parametreler, kullanıcıya bir parola ile veritabanına bağlanması için bir hesap vermek üzere oluşturulur.
Ardından, kullanıcının rolü varsayılan UTC saat dilimi, varsayılan "Tamamen Oku" işlem yalıtımı ve varsayılan UTF-8 istemci kodlaması ile yapılandırılacaktır.
Kullanıcıya "DB "yi yönetmesi için erişim izni verildi.
GRANT ALL PRIVILEGES ON DATABASE "yourproject" TO "myprojectuser";
Proje için bir çalışma alanı oluşturma
Bir "DB" oluşturdum ve şimdi projenin geri kalan gereksinimlerine geçebiliriz. İşleri biraz daha kolaylaştırmak için, ihtiyacımız olan tüm gereksinimleri sanal bir ortamda kurdum.
Bu komutları yazalım:
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
"virtualenv" aracını kurduktan sonra projemizi şekillendirmeye başlıyorum.
Proje için dosyalarımızı saklayacağımız bir dizin oluşturdum ve bu dizine gidiyorum
mkdir ~/yourprojectdir
cd ~/myprojectdir
Dizinde sanal bir ortam oluşturuldu.
virtualenv yourprojectenv
virtualenv, farklı projeler için izole ortamlar oluşturmanıza ve kütüphanelerin ve uygulamaların farklı sürümlerini kullanmanıza olanak tanıyan bir komuttur
Bu, kuruluştaki tüm projeler için aynı teknoloji yığınının korunmasına olanak tanıyarak uyumsuzluk ve hata riskini azaltır.
Bu dizin hemen Python'un yerel sürümünü ve paket yönetim sistemini içerecektir.
Projemize gereksinimleri atamadan önce sanal ortamı çalıştırmamız gerekiyor. Bu komutu yazın:
source yourprojectenv/bin/activate
Komut satırı değişecek ve artık Python sanal ortamında çalıştığınızı gösterecektir. Şu şekilde olacaktır.
Sanal ortamı çalıştırırken gerekli bileşenleri yükleyin.
pip install django gunicorn psycopg2-binary
Proje oluşturma
Çerçeve için zaten bir proje dizini oluşturulmuştur, bu nedenle başlatma yolunu belirtmemiz gerekir, çünkü ikinci dizin içinde kontrol komut dosyası kodunun bulunduğu alt dizini içerir.
django-admin startproject yourproject ~/yourprojectdir
Bundan sonra, oluşturulan proje dosyasında birkaç parametreyi değiştirmeniz gerekecektir. Ayarlar dosyasını herhangi bir metin editörü ile açın.
nano ~/yourprojectdir/yourproject/settings.py
Şimdi ayarları değiştirmemiz gerekiyor.
Ardından aşağı kaydırın ve şifreyi sağlayan bölümü bulun, adı "DB" dir.
Ayrıca DATABASES dizesini arayın, bu dizeyi verileriniz için yapılandırın.
Aşağı kaydırın ve statik dosyaları depolamak istediğiniz yeri belirtmek için parametreyi ekleyin.
Son yapılandırma
Yönetim komut dosyalarını kullanarak "DB" şemasını taşıyacağım.
~/yourprojectdir/manage.py
~/yourprojectdir/manage.py migrate
Proje için bir yönetici kullanıcı oluşturun.
~/yourprojectdir/manage.py createsuperuser
Verilen dizindeki tüm statik içeriği toplar.
~/myprojectdir/manage.py collectstatic
Komutun doğrulanması gerekir. Bundan sonra, tüm dosyalar projenin "statik" dizinine taşınacaktır.
Ayrıca proje için kullanılacak portu da açın.
sudo ufw allow 2222
Kontrol Et
Framework sunucusunu başlatarak projemizi kontrol edin.
~/myprojectdir/manage.py runserver your_ip:2222
Çerçevenin çalışıp çalışmadığını kontrol etmek için web tarayıcısına gidin.
Web kaynağına yetki verdikten sonra kontrol paneline yönlendirilirsiniz.
Çıktı
Bu yazıda size Ubuntu 20.04 sisteminizi Postgres veritabanı; Gunicorn web sunucusu ve yapılandırılmış Ngnix proxy ile bir Django projesi başlatmak için nasıl hazırlayacağınızı gösterdim.