Herkese merhabalar. Bildiğiniz üzere Django geliştirme sürecinde test ve hata ayıklama işlemlerinin yapılabilmesi için yerleşik basit bir geliştirme sunucusuna sahip.
Fakat bu sunucu bazı dış servislerle çalışırken yetersiz kalabilmekte. Örneğin sosyal medya hesapları üzerinden sisteme kullanıcı kabul etmek istediğimizde, web uygulamamızı kullanacağımız uygulamaya tanıtırken bizden HTTPS protokolü üzerinden çalışan bir bağlantı isteyebiliyor. Yerleşik gelen geliştirme sunucusu ise HTTP üzerinden hizmet veriyor. Bu gibi durumlarda daha canlıya çıkmamışken test ve diğer işlemler için bu özelliği Django’ya kazandırmamız gerekebilir. Bir kaç basit işlemle bunun üstesinden gelebiliriz.
Halihazırda bir Django projesi ayağa kaldırdığınızı varsayarak devam edelim.
Gerekliliklerin yüklenmesi.
pip install django-extensions
Django extensions bir çok yararlı Django aracının toplandığı bir paket, https bağlantı sunma, model ER diyagramlarının çıkartılması veya sahte veri girilmesi gibi bir çok yeteneğe sahip. Daha detaylı bilgi için.
pip install werkzeug
Werkzeug kapsamlı bir WSGI web uygulama kütüphanesi. Kullanacak olduğumuz Django extension’u runserver_plus aracı hata ayıklama katmanı için kullanmakta. Geliştirme yaparken daha detaylı bilgi vermesi ve direkt kod bloklarının tarayıcı üzerinden çalıştırılabilmesi gibi avantajları bulunmakta.
pip install pyOpenSSL
Son olarak runserver_plus eklentisinin SSL/TLS bağlantılarını yönetebilmesi için gerekli olan paketi de kuralım.
Daha sonra eklentileri kullanabilmek için Django’ya tanıtmamız gerekmekte.
INSTALLED_APPS = [ ... your apps # 3rd party apps "django_extensions", ] # other settings
Herhangi bir migration işlemi gerekmemekte.
./manage.py runserver_plus --cert-file cert.crt
Komutunu vererek HTTPS sunucumuzu başlatıyoruz. Django extensions bizim için otomatik olarak anahtar ve sertifika oluşturacak. Aşağıdaki çıktıda projenizin werkzeug server üzerinden başlatıldığını, debug pininizi ve adresi görebilirsiniz. Oluşturulan sertifika ve key dosyaları da çalışma alanınıza eklenmiş olacaktır.
./manage.py runserver_plus --cert-file cert.crt * Running on https://127.0.0.1:8000/ (Press CTRL+C to quit) * Restarting with stat Performing system checks... System check identified no issues (0 silenced). Django version 3.0.6, using settings 'project_name.settings' Development server is running at https://[127.0.0.1]:8000/ Using the Werkzeug debugger (http://werkzeug.pocoo.org/) Quit the server with CONTROL-C. * Debugger is active! * Debugger PIN: 329-480-069
Tarayıcınızdan localhost:8000 adresine gittiğinizde artık sunucunuza HTTPS üzerinden erişebiliyor olacaksınız. Tarayıcınız bu sertifikaya güvenmemeniz gerektiği ile alakalı bir uyarı verebilir. Çünkü kendimizin ürettiği bir sertifika ile bu işlemi yapmaya çalışıyoruz. İleri düzey seçeneklerden riski kabul ettiğinizi belirtip sertifikaya güvenmesi gerektiğini söylemelisiniz.
Sertifikanızı değiştirmediğiniz sürece diğer bağlantılarda bu uyarıyla karşılaşmadan devam edebilir ve testlerinizi yapabilirsiniz kolay gelsin 🙂
NOT.
Bu yöntem kesinlikle canlı ortamda kullanılmamalıdır, sadece test amaçlıdır.
Bazı dış servisler localhost, 127.0.0.1 gibi domain veya IP ler ile işlem yapılmasını engelleyebilmekte, bu yüzden lokal geliştirme sunucunuzu myhome.com tarzı bir domaine maplemeniz akıllıca olabilir. 😉
NGROK İLE TÜNELLEME.
Diğer bir yol olarak Ngrok ile lokal sunucunuzu tünelleyerek projeniz gerçek bir sunucuda koşuyormuşcasına bir simülasyon kurgulayabilirsiniz. Nasıl yapacağım derseniz şuradan göz atabilirsiniz 🙂
İyi günler!
İlk Yorumu Siz Yapın