python flask tutorial introduction flask
Bu tanıtıcı Python Flask öğreticisi, Flask'ın ne olduğunu, Python, Virtualenv, Flask Hello World örneğinin kurulumunu, kod örnekleri, hata ayıklama ve testlerle ilgili bir bölümle açıklar:
Web sitesi geliştirme bir beceriden çok bir sanattır. Gerçek bir başarı olması için gerekli olanı yaratmak için sabır ve gayretin yanı sıra azim, cesaret ve adanmışlık gerektirir. Bu günlerde, öğrencilerin mümkün olan en kısa sürede hızlanmaları çok önemlidir.
Bu Python Flask eğitimini, öğrencilerin Python 3 kullanarak basit ve karmaşık web programlamayı hızlandırması ve uygulaması için oluşturduk.
Bu Python Flask öğreticisi, Python, Virtualenv ve diğer temel paketlerin kurulumunu kapsayacak bir başlangıç eğitimine benziyor. Bu eğitim dizisinde, diğer gerekli Flask eklentileriyle birlikte Flask'ı da kuracağız. Ayrıca Git Eylemlerini kullanarak kod hata ayıklama, test etme ve sürekli entegrasyon hakkında bir bölüm de ekledik.
Ne öğreneceksin:
Bu Flask Serisindeki Öğreticiler Listesi
Öğretici 1: Python Flask Eğitimi - Yeni Başlayanlar İçin Flask'a Giriş
Öğretici # 2: Flask Şablonu, Form, Görünüm ve Örneklerle Yönlendirme
Öğretici 3: Flask Veritabanı Kullanımı - Bir Veritabanı ile Flask Nasıl Kullanılır
Eğitim 4: Blueprint ve Bootstrap ile Flask Uygulaması ve Flask Proje Düzeni
Öğretici 5: Cep Şişesi Tasarım Modelleri ve Web Uygulamaları İçin En İyi Uygulamalar
Öğretici # 6: Örneklerle Flask API Eğitimi | API'lerle Şişeyi Genişletme
Eğitim 7: Django Vs Flask Vs Düğümü: Hangi Çerçeve Seçilmeli
Eğitim # 8: En Popüler 31 Python Flask Mülakat Sorusu ve Cevapları
Flask Nedir
Flask bir web geliştirme çerçevesidir. Yerleşik bir geliştirme sunucusu ve bir hata ayıklayıcı içeren bir çerçevedir.
java'da deneyimli olanlar için web hizmetleri mülakat soruları ve cevapları
Flask çerçevesi kendi içinde diğer arketiplerden farklıdır çünkü web geliştiricilerinin esnek olmasına ve yazılım geliştirme topluluğunda sıkça yayınlanan değişikliklere rahatça uyum sağlamasına olanak tanır.
Flask Ne İçin Kullanılır
Python programlama dilinde Web Uygulamaları geliştirmek için Flask çerçevesini kullanıyoruz. Geliştirilmekte olan uygulamaya zenginlik ve anlam kazandırmak için diğer üçüncü taraf hizmetleri ve API'lerle entegre olur. Flask’ın temel kavramları basittir ve küçük bir ayak izine sahiptir.
Bir Flask GitHub deposunun yardımıyla web geliştirmeyi anlamak için bu Python Flask eğiticisiyle başlayalım. Bununla birlikte, devam etmeden önce, tartışılan kod örneklerinin kolay takibi için lütfen projeyi Github'dan klonlayın.
Önkoşullar
Bu bölümde bahsedilen başlıklar dışında bir Github Hesabı oluşturmanızı öneririz. Önkoşullarda aşağıda belirtilen adımlarla devam edelim.
Adım 1: Python'u Yükleyin
Python 3'ü kurup kurmadığınızı kontrol edin. Değilse, Python 3'ü şuradan indirin: İşte ve İşletim Sisteminize göre yükleyin.
Adım 2: Bir Python Sanal Ortamı Oluşturun
Aşağıdaki komutu kullanarak bir sanal ortam oluşturun.
python3 -m venv venv
Python sanal ortamını etkinleştirmek için aşağıdaki komutu kullanın.
source venv/bin/activate
Aşağıda sanal ortamın aktivasyon ve deaktivasyonuna bir örnek verdik.
Bu öğreticide yer alan sonraki tüm komutlar, etkinleştirilmiş bir sanal ortamda çalıştırılmalıdır. Tekerlek paketini, sanal ortamda tekerlekler oluşturabilmemiz için kurun.
pip install wheel
3. Adım: Flask İndirme ve Yükleme
Flask indirme adımlarını gerçekleştirmemiz ve aşağıda belirtilen adımları kullanarak Flask'ı kurmamız gerekiyor.
Şimdi Flask'ı kurun.
pip install flask
Bazılarımız en son kaynak kodu değişiklikleriyle birlikte çalışmayı sever. Flask kaynaklarına yapılan son değişikliklerle kurulum yapmak için aşağıda verilen komutu kullanabiliriz.
Geçici bir dizin oluşturun.
mkdir tmp
Şimdi Flask'ı Github deposundan yükleyin. Aşağıdaki komutun çalışması için internete bağlı kalmanız gerekmektedir.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Başarılı kurulumu kontrol etmek için konsol çıkışlarına bakın. Şimdi Flask komutlarına erişip erişemeyeceğimizi kontrol edin.
flask --help
Bir Flask uygulamasının olmamasıyla ilgili bazı istisnalar görebilirsiniz. Ancak, herhangi bir Flask uygulaması oluşturmadığımız için bunları ihmal edin. Uygulamamız, Werkzeug web çerçevesi ve Jinja şablon oluşturma motorunda bir sarmalayıcı olan Flask'ın bir örneğidir.
Araç
Werkzeug bir WSGI araç setidir. WSGI, yalnızca web sunucularının iletmesi için bir çağrı kuralıdır web istekleri Python programlama dilinde yazılmış web uygulamalarına.
Jinja
Şablon oluşturma, web geliştiricilerinin temel bir beceri setidir. Jinja, Python için tam özellikli ve popüler bir şablon oluşturma motorudur. Oldukça etkileyici bir dildir ve şablon yazarları için sağlam bir araç seti sağlar.
4. Adım: MongoDB'yi yükleyin
MongoDB'yi kurmak için aşağıda belirtilen adımları izleyin. Debian tabanlı bir Linux'a kurulum adımlarını özetledik. Başka bir işletim sistemi kullanıyorsanız, bağlantı ve amaçlanan işletim sistemine göre yükleyin.
MongoDB genel GPG anahtarını içe aktarmak için gnupg yükleyin.
sudo apt-get install gnupg
Şimdi aşağıdaki komutu kullanarak anahtarı içe aktarın.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Linux dağıtımınıza göre kaynaklar listesi dosyasını oluşturun. Debian'a göre kaynakların listesini ekledik.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Güncelleme komutunu çalıştır
sudo apt-get update
Şimdi aşağıdaki komutu kullanarak MongoDB'yi kurun.
sudo apt-get install -y mongodb-org
Kurulum başarılı olduktan sonra aşağıdaki komutu kullanarak MongoDB'yi başlatın.
sudo systemctl start mongod
Aşağıdaki komutu kullanarak MongoDB'nin durumunu kontrol edin.
sudo systemctl status mongod
Şimdi aşağıda gösterilen komutu vererek mongod'un sistem yeniden başlatıldığında otomatik olarak başladığından emin olun.
sudo systemctl enable mongod
Şimdi, mongo istemcisini kullanarak MongoDB sunucusuna bağlanıp bağlanamayacağınızı kontrol edin.
mongo
Mongo kabuğunda, yardımı kullanmayı deneyin ve dbs komutlarını gösterin.
Bir Flask Uygulaması Oluşturun
Flask-appbuilder ve mongoengine'ı yüklemek için aşağıdaki komutu kullanın.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Aşağıdaki kod parçacığında yorum olarak gösterilen değerlerle bir iskelet uygulaması oluşturun.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Çıktıyı aşağıda verilene benzer göreceğiz.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Projenin ve uygulamanın düzenine bir göz atın. Aşağıda ağaç komutunun çıktısını gösterdik.
Flask yapılandırma dosyasına bir göz atalım. Son komutun sonucu olarak oluşturulan varsayılan bir yapılandırmadır. Açıklamayı iptal et Yarı robot tema, aşağıda gösterildiği gibi.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
İskelet uygulamasını çalıştırmak için terminalde aşağıda verilen komutu kullanın.
pc'de bir bin dosyası nasıl açılır
flask run
Flask Merhaba Dünya
FlaskTutorialApp'ta ilk programınızı oluşturmak için, uygulama dizininin altındaki dosya views.py dosyasını açın ve aşağıdaki kodu ekleyin. Dosyada verilen ithalat ifadelerine bakın. Zaten mevcut değilse bu ifadeleri ekleyin.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Yukarıdaki kaynak kodunu ekledikten sonra dosyayı kaydedin. Projenin kök dizinine gidin ve Flask’ın geliştirme sunucusunu çalıştırmak için aşağıdaki komutu kullanın.
flask run
Şimdi tarayıcıda çıktıyı görmek için http: // localhost: 5000 / hello / adresine gidin.
Hata ayıklama
Şu anda geliştirme sunucusu Hata Ayıklama modunda çalışmıyor. Hata ayıklama modu olmadan, Flask Uygulamasının kaynak kodundaki hataları bulmak zordur.
Flask'ta Hata Ayıklama Modu aşağıdakilere neden olur:
- Hata ayıklama modu, Otomatik yeniden yüklemeyi etkinleştirir. Bu, uygulamanın kaynak kodunda değişiklik yaptıktan sonra geliştirme sunucusunu yeniden başlatmamız gerekmediği anlamına gelir.
- Hata ayıklama modu, Python hata ayıklayıcıyı etkinleştirir. İstisna sırasında değişkenlerin değerlerini inceleyebiliriz.
- Hata ayıklama modu, Flask uygulamasında hata ayıklamayı etkinleştirir. Hata ayıklama oturumlarında çeşitli değişkenlerin değerlerini kontrol edebiliriz.
Zaten çalışıyorsa geliştirme sunucusunu durdurun. Aynısını yapmak için CTRL + C veya Klavye kesmesini kullanabilirsiniz.
Hata ayıklama modunu etkinleştirmek ve geliştirme sunucusunu geçici olarak çalıştırmak için aşağıdaki kodu kullanın.
FLASK_ENV=development flask run
Konsolda Hata Ayıklayıcı PIN kodunu arayın ve not alın.
Şimdi yukarıda yazılı HelloWorld görünümünü kod parçacığının aşağıdaki satırlarıyla değiştirelim. Özel bir istisna getirdiğimize dikkat edin.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Http: // localhost: 5000 / hello / adresine gidin ve uygulamanın bir istisna oluşturduğunu göreceksiniz. Tarayıcı, aşağıda gösterildiği gibi yığın izlemeyi görüntüler.

Ayrıca, geliştirme sunucusunun çalıştığı konsola bakın. Bu sefer, views.py dosyasındaki değişikliklerin otomatik olarak algılandığını ve hata ayıklama sunucusunun kendiliğinden yeniden başladığını göreceksiniz. Şimdi manuel olarak yeniden başlatmamıza gerek yok.
Konsolda aşağıda gösterildiği gibi çizgiler olacaktır. Daha sonra Hata Ayıklama PIN'ini not etmemiz gerekir.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Şimdi tarayıcıdaki yığın izini kontrol edin ve son satıra gidin. Görünümünü genişletmek için üzerine tıklayın ve kabuğu etkileşimli modda açmak için CLI simgesine tıklayın.

Açtıktan sonra, tarayıcının Hata Ayıklama PIN'i için bir komut istemi göstereceğini göreceksiniz. Hata Ayıklama PIN kodunu verin ve Tamam'a tıklayın.

Hata Ayıklama PIN kodunu verdikten sonra devam ettiğimizde, etkileşimli kabuğa erişebiliriz.
Kabuğa tarayıcı içinden erişiriz ve İstisnanın nedenini bulmak ve hatayı daha iyi bir şekilde ele almak için değişkenlerin değerlerini inceleyebiliriz. Lütfen aşağıdaki resimde gösterilen örneklerden birine bakın.

Şimdi, aşağıda gösterildiği gibi, view.py'deki kodu değiştirin. İstisnanın arttığı satır hakkında yorum yaptığımızı unutmayın.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Balon Uygulamasının Test Edilmesi
Şimdi geliştirmekte olduğumuz Flask uygulaması için ilk testimizi yazalım. İlk önce PyTest'i kurun. PyTest bir test çerçevesidir. Daha iyi kod yazmamıza yardımcı olur.
Üstelik uygulamalarımızı geliştirirken birim testler de yazabildiğimiz için TDD yaklaşımını takip etmek mümkündür. TDD, Test Odaklı Geliştirme anlamına gelir. Bu serinin sonraki öğreticilerimizde, her zaman önce testleri yazıp görüşlerimizi veya modellerimizi geliştireceğiz.
PyTest'i yükleyin
pip install pytest
Şimdi uygulama dizininin içinde testler adlı bir dizin oluşturun ve bunun içinde test_hello.py adlı bir dosya oluşturun. Görüşümüzü test etmek için ilk birim testimizi yazalım.
Aşağıdaki kod parçacığını kopyalayın ve test_hello.py içine yapıştırın.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
Testleri çalıştırmak için aşağıdaki pytest komutunu kullanın. PyTest, Testleri otomatik olarak toplar ve sonuçları standart çıktıda görüntüler.

GitHub İş Akışı Oluşturun
Örnek uygulamamız için bir CI / CD iş akışı oluşturmak için Git Actions kullanıyoruz. Projeniz için aşağıda belirtilen adımları izleyin.
Adım 1: GitHub'daki depo sayfasına gidin. Git Eylemleri'ne tıklayın.

Adım 2: Sayfayı aşağı kaydırın ve bir Python paketi için mevcut bir iş akışı şablonunu bulun.

Adım 3: Python paketi İş Akışını kurun.

Adım 4: python-package.yml iş akışı yapılandırması açıldıktan sonra, verilen yaml ek etiket değerlerine göre bunu güncelleyin.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Flask uygulamamızı en son Ubuntu Linux dağıtımında test etmek istiyoruz. İşletim sistemine ek olarak, testlerimizi yalnızca Python 3.7 ve Python 3.8 kullanarak çalıştırmak istiyoruz.
Adım 5: python-package.yml dosyasını güncellenmiş değerlerle işleyin.

Adım 6: Önceki sayfadaki commit bizi GitActions işlerine götürüyor.

7. Adım: (İsteğe bağlı)
Örnek eğitim uygulamasının Github İşleri sayfasında, bir rozet oluşturabilir ve bunu, derleme durumunu görüntülemek için README.md dosyasına yerleştirebiliriz.
Şimdi, değişiklikler ana dala her uygulandığında, python-package.yml'de yazıldığı gibi Git İş Akışı takip edilecek ve Git Eylemlerinde çalıştırılacaktır.
Sonuç
Bu eğiticide, Flask - A Python tabanlı web geliştirme çerçevesi kullanılarak geliştirilen bir web uygulaması için ön koşullardan CI / CD iş akışının kurulmasına kadar tüm temel kavramları ele aldık.
Bu eğitim, Python kullanarak web geliştirmeye başlamak için Python'u kurma, Flask'ı indirme ve yükleme, Flask-Appbuilder ile çalışma, PyTest ile test etme gibi gerekli tüm adımları kapsar. Web geliştirme topluluğu genellikle Flask'ı Django adlı başka bir popüler Python web geliştirme çerçevesiyle karşılaştırır.
Bu farklılıkları açıklayacağız ve ayrıca bu çerçeveleri bu serideki eğitimlerden birinde karşılaştıracağız.
Önerilen Kaynaklar
- Django Vs Flask Vs Düğümü: Hangi Çerçeve Seçilmeli
- Örneklerle Flask API Eğitimi | API'lerle Şişeyi Genişletme
- Blueprint ve Bootstrap ile Flask Uygulaması ve Flask Proje Düzeni
- Flask Veritabanı Kullanımı - Bir Veritabanı ile Flask Nasıl Kullanılır
- Cep Şişesi Tasarım Modelleri ve Web Uygulamaları İçin En İyi Uygulamalar
- Flask Şablonu, Form, Görünüm ve Örneklerle Yönlendirme
- En Popüler 31 Python Flask Mülakat Sorusu ve Cevapları
- Yeni Başlayanlar İçin Python Eğitimi (Uygulamalı ÜCRETSİZ Python Eğitimi)