Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

Python Flask ve MySQL Kullanarak Sıfırdan Bir Web Uygulaması Oluşturmak

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Creating a Web App From Scratch Using Python Flask and MySQL.
Creating a Web App From Scratch Using Python Flask and MySQL: Part 2

Turkish (Türkçe) translation by nselcuk (you can also view the original English article)

Bu bölümde, Python, Flask ve MySQL kullanarak sıfırdan bir uygulama oluşturacağız. Kullanıcıların üye olabildikleri, giriş yapabildikleri ve malzeme listesi oluşturabildikleri bir basit alışveriş listesi olacak.

Bu eğitimde basit seviyede Python dili bildiğinizi varsayıyoruz.  Uygulamayı oluşturmak için Flask adında, bir Python web uygulama framework'ü kullanacağız. Back end'i MySQL ile yapacağız.

Python Flask'a Giriş

Flask Web uygulamaları oluşturmak için bir arayüzdür. Resmi sitesinden,

Flask, Python için bir mini arayüzdür, Werkzeug, Jinja 2 ve birkaç tane daha güzel uygulamayı baz alır.

Ne zaman Python desek, aklımıza haliyle Django arayüzü geliyor. Fakat Python da yeni olanlara göre, Flask ile başlamak Django ile başlamaktan oldukça kolay. 

Flask Kurulumu

Flask'ın kurulumu oldukça basit ve hızlı.  pip paket manageri ile tüm yapmamız gereken:

Kurulumu tamamladığınız zaman, FlaskApp adında bir klasör oluşturun. FlaskApp klasörüne gidin ve app.py adında bir dosya oluşturun. flask modülünü import edin ve gösterildiği gibi Flask kullanarak bir uygulama oluşturun.

Şimdi temel route tanımlayalım / ve request handler' i işaret etsin:

Sırada, main programı doğrulayalım ve uygulamayı çalıştıralım:

Değişiklikleri kaydedip, app.py çalıştıralım:

Web tarayıcınızdan http://localhost:5000/ adresine gidin ve bir hoşgeldin mesajı görüyor olmalısınız.

Ana Sayfa Oluşturma

İlk olarak, ne zaman uygulamayı çalıştırsak, kullanıcı tarafından son eklenen itemlerin olduğu bir ana sayfa görmeliyiz. Bunun için hadi ana sayfamızı uygulama klasörümüze ekleyelim.

Flask templates klasörünün içinde template dosyaları arar. Bunun için PythonApp klasörüne gidin ve templates adında bir klasör oluşturun. templates klasörünün içinde, index.html isminde bir dosya oluşturun. index.html 'i açın ve aşağıdaki HTML 'i ekleyin:

app.py 'yi açın ve render_template 'yi import edin. Bunu template dosyalarımızı yorumlamak için kullanacağız.

main method' unu düzeltin ve yorumlanmış template dosyasını return edin.

Değişiklikleri kaydedin ve server'i baştan başlatın. Web tarayıcınızdan http://localhost:5000 adresine gidin, aşağıdaki ekranı görmelisiniz:

Bucket List App home page

Kayıt sayfası oluşturmak.

Adım 1: Veritabanı Oluşturmak

Back end için MySQL kullanacağız. Bunun için komut satırından MySQL'e giriyoruz. Eğer GUI kullanmayı tercih ederseniz. MySQL work bench' de kullanabilirsiniz.  Ilk olarak, BucketList adında bir veritabanı oluşturalım. Komut satırından:

Gerekli parolayı girin ve login olun, veritabanı oluşturmak için aşağıdaki komutu koşun:

Database kurulduğu zaman, tbl_user adında bir tablo oluşturun.

Python uygulamamızın veritabanıyla iletişime geçmesi için Stored procedures kullanacağız. Bunun için, tbl_user tablosu kurulduktan sonra, user oluşturmak için sp_createUser kayıtlı prosedürünü oluşturalım.

tbl_user tablosunda bir kayıtlı prosedür oluşturduktan sonra, ilk olarak kontrol etmemiz gereken aynı username in olup olmadığıdır. Eğer böyle bir durum varsa, kullanıcıya bir hata mesajı göstermemiz gerekir, değilse user table da bir user oluşturacağız. sp_createdUser kayıtlı prosedürünün nasıl olduğunu görebilirsiniz:

Adım 2: Kayıt arayüzü oluşturmak

PythonApp/templates klasörüne gidin ve signup.html adında bir HTML dosyası oluşturun. Aşağıdaki HTML kodunu signup.html 'e ekleyelim:

Ayrıca aşağıdaki CSS i PythonApp'ın içindeki static klasörüne signup.css olarak ekleyelim.

/showSignUp a gelen herhangi bir requesti yorumlamak için app.py dosyasına showSignUp method'u ekleyelim:

Değişiklikleri kaydedin ve server'i yeniden başlatın. Anasayfada Sign Up butonuna tıklayınız. Aşağıdaki gibi bir kayıt olma sayfası görmelisiniz.

Sign Up user page

Adım 3: Signup methodu uygulamak

Sırada, UI için MySQL veritabanıyla konuşmaya yarayan bir server tarafı bir method a ihtiyacımız vardır. Bunun için PythonApp klasöründe app.py'yi açın. signUp adında bir method ve ayrıca /singUp a bir route ekleyin. Şu şekilde görünmeli:

singUp metodunda ki kayıt ol verisini jQuery AJAX ile göndereceğiz, bunun için route tanımında ki method'u biraz değişterelim.

Gönderilmiş değerleri okumak için Flask'dan request'i import etmeliyiz.

request kullanarak gönderilen değerleri aşağıdaki gibi okuyabiliriz:

Değerler okunduktan sonra, basitçe onların geçerli olup olmadığına bakacağız ve şu an için hadi sadece basit bir mesaj dönelim:

Aynı zamanda Flask dan json u import edin, json verisi döndürene kadar yukarıda ki kodu kullanıyoruz.

Adım 4: Kayıt Ol talebi oluşturmak

Python methoduna signup talebi göndermek için jQuery AJAX kullanıyor olacağız. PythonApp/static/js klasörüne jQuery'i indirelim ve signup sayfasından buraya bir link ekleyelim. jQuery eklendikten sonra, Sign Up butonuna jQuery POST requesti ekleyeceğiz.

Bunun için, hadi bu olayı signup butonuna aşağıdaki gibi ekleyelim:

Değişikleri kaydedip, serveri baştan başlatalım.  Sign Up sayfasından, detayları doldurup Sign Up a tıklayalım. Tarayıcıyı kontrol ettiğimizde aşağıdaki mesajı görmeliyiz:

Adım 5: MySQL kayıtlı prosedürünü çağırma

name, email address ve password ü yazdıktan sonra, basitçe MySQL kayıtlı prosedürünü yeni kullanıcı yaratması için çağırabiliriz.

MySQL'e bağlanmak için Flask-MySQL adlı bir Flask extension'ı kullanacağız Flask-MySQL'e başlamak için, pip paket yöneticisiyle yükleyelim:

MySQL'i app.py içerisine import edelim:

Daha önce app'i aşağıdaki gibi tanımlamıştık:

MySQL configürasyonlarıyla beraber:

Ilk olarak, MySQL bağlantısını kuralım:

Bağlantı kurulduktan sonra, kayıtlı prosedürü sorgulamak için cursor a ihtiyacımız olacak. Bu yüzden bağlantı için conn kullanarak cursor oluşturalım.

Kayıtlı kullanıcı prosedürü oluşturmadan önce, Werkzeug tarafından sağlanan bir yardımcıyla parolayı kriptolayalım. app.py'ye modülü import edelim.

Salting modülü kullanarak, rastgele parola oluşturalım.

Şimdi, sp_createUser'i çağıralım.

Eğer işlem başarıyla tamamlanırsa, değişiklikleri işleyip, başarıyla sonuçlandığını dönelim.

Değişiklikleri kaydedip, server'ı baştan başlatalım. signup sayfasına gidip, name, email address ve password'u yazıp Sign Up butonuna tıklayalım. Başarılı bir şekilde user oluşturulduğu zaman, tarayıcınızda aşağıdaki mesajı görebiiyor olacaksınız.

Özet

Bu eğitimde, Python Flask, MySQL ve Flask-MySQL ek paketi kullanarak nasıl web uygulaması yapıldığını gördük. Veritabanı tabloları ve kaydedilmiş prosedürler tasarlayıp, oluşturduk. Bunları Kayıt Ol işlemiyle ilişkilendirdik. Sıradali eğitimde, Giriş yap işlemleri ile bir kaç diğer özelliği de ekleyeceğiz.

Bu eğitime ait kaynak koduna GitHub dan erişilebilir.

Yorumlarınız bizim için değerlidir!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.