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

Python Flask ve MySQL Kullanarak Sıfırdan Bir Web Uygulaması Oluşturmak: Bölüm 2

by
Difficulty:IntermediateLength:ShortLanguages:
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
Creating a Web App From Scratch Using Python Flask and MySQL: Part 3

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

Bu dizinin önceki bölümünde, Python Flask ve MySQL ile nasıl başlanacağınızı gördük ve uygulamanızın kullanıcı kaydı bölümünü uyguladık Bu yazıda, uygulamanız için oturum açma ve oturumu kapatma işlevlerini uygulayarak bunu bir üst düzeye taşıyacağız.

Başlarken

Önceki eğitimin kaynak kodunun ilk kopyasını GitHub da bulabilirsiniz.

Kaynak kodunu kopyaladıktan sonra, PythonFlaskMySQLApp---Part-1 klasörüne gidin ve serverı başlatın

Web browserınızdan http://localhost:5002 adresine gidin, uygulamayı çalışıyor olarak görmelisiniz.

Sign-In Arayüzü Oluşturmak

PythonFlaskMySQLApp---Part-1/templates 'e gidin ve signin.html isimli bir dosya oluşturun.  signin.html i açın ve aşağıdaki kodu ekleyin.

app.py 'yi açın ve sign-in arayüzü için yeni bir route ekleyin.

Şimdi, index.html ve signup.html i açın, ve sign-i için iki sayfayada href linkini /showSignin gibi ekleyin.  Değişikleri kaydedip, serveri baştan başlatınız.

Web browserınızdan http://localhost:5002 adresine gidin ve Sign In linkine tıklayın. sign-in sayfasını görebiliyor olmalısınız.

Sign In page

Sign-In Eklemek

Şimdi, userın giriş yaptığını doğrulayacak bir fonksiyon oluşturmamız gerekir.  Sign In e tıklayarak girilen e-mail adresini ve parolayı göndererek doğrulama yapacağız.

Kayıtlı Prosedür Oluşturmak

Kullanıcıyı doğrulamak için, MySQL kayıtlı prosedürüne ihtiyacımız olacaktır. Bunun için MySQL kayıtlı prosedürünü gösterildiği gibi oluşturalım.

Kullanıcı detaylarını username e bağlı olarak MySQL veritabanından sp_validateLogin kullanarak alacağız. Kriptolanmış parolayı elde ettikten sonra, şifreyi kullanıcı tarafından girilen şifreyle doğrulayacağız.

Kullancı Doğrulama Methodu

Kullanıcı form doldurduğunda çağıracağımız, kullanıcıyı doğrulamak için çalışacak bir method oluşturunuz:

Yukardaki kodda görüldüğü gibi, gönderilen email adresini ve parolayı _username ve _password den okuduk Şimdi _username parametresiyle sp_validateLogin prosedürünü çağıracağız. Bunun için MySQL bağlantısının içerisinde validateLogin methodunu oluşturalım:

Bağlantı kurulduktan sonra, con bağlantısı kullanarak cursor oluşturun.

cursor kullanarak, MySQL kayıtlı prosedürünü aşağıdaki gibi çağırın:

Kayıtları cursor dan gösterildiği gibi alın:

Eğer veride kayıtlar varsa, alınan parolayı, kullanıcın girdiği parolayla eşleştireceğiz.

 Yukarıdaki kodda görüldüğü gibi, kullanıcı tarafından girilen parolayla sistemde kayıtlı parolayı eşleştirmek için check_password_hash methodunu kullandık. Herşey tamamsa, kullanıcıyı userHome.html 'e yönlendirelim. Eğer herhangi bir hata olursa, hata mesajı olarak error.html'i göstereceğiz.

validateLogin kodunun tamamı aşağıdadır.

templates klasörünün içine userHome.hml isminde bir sayfa oluşturalım ve aşağıdaki kodu ekleyelim:

Aynı zamanda templates in içine error.html isminde bir sayfa daha oluşturalım ve aşağıdaki kodu ekleyelim:

error.html in içerisinde gösterildiği gibi bir eleman bulunur:

Değişkenin değeri render_template üzerinden geçilebilir ve dinamik olarak değiştirilebilir.

Başarılı girişlerde kullanıcıyı ana sayfaya yönlendiririz, bunun için /userHome olarak gösterildiği gibi bir route oluşturalım:

Bütün değişiklikleri kaydedip, serverı baştan başlatalım.  Ana sayfadaki Sign In linkine tıklayalım ve geçerli bir email adresi ve parolayla giriş yapmayı deneyelim. Kullanıcı başarılı bir şekilde doğrulandıysa, aşağıda gösterildiği gibi bir sayfaya sahip olmalıyız:

User home on successful user sign in

Hatalı kullanıcı doğrulama esnasında, kullanıcı aşağıda gösterildiği gibi bir hata sayfasına yönlendirilecektir:

Error message on unsuccessful user sign in

Biz burada hatayı göstermek için ayrı bir sayfa kullandık. Eğer hata mesajını aynı sayfada göstermek isterseniz bu da uygundur.

Kullanıcı Ana Sayfasına Yetkisiz Erişimi Önlemek

Başarılı bir kullanıcı doğrulamasında, bir kullanıcı, kullanıcı ana sayfasına yönlendirilir. Ancak şu anda yetkisiz bir kullanıcı bile ana sayfayı URL'ye göz atarak görüntüleyebilir http://localhost:5002/userHome.

Yetkisiz kullanıcı erişimini kısıtlamak için, başarılı kullanıcı girişi üzerine ayarlayacağımız bir oturum değişkenini kontrol edeceğiz. Bunun için session u flaskdan import edelim:

Ayrıca oturum için gizli bir anahtar ayarlamamız gerekir Yani app.py dosyasında, uygulamanın başlatılmasından sonra gizli anahtarı gösterildiği gibi ayarlayın.

Şimdi, validateLogin methodunda, başarılı oturum açma işleminde kullanıcıyı / userHome'a yönlendirmeden önce session değişkenini gösterildiği gibi ayarlayın:

Sonra, userHome yönteminde, userHome.html dosyasını oluşturmadan önce session değişkeninin olup olmadığını kontrol edin. Oturum değişkeni bulunamazsa, hata sayfasına yönlendirin.

Tüm değişiklikleri kaydedin ve sunucuyu yeniden başlatın. Oturum açmadan, http://localhost:5002/userHome adresine gidin ve giriş yapmadığınızdan hata sayfasına yönlendirilmelisiniz.

Unauthorized access error

Çıkış Yapma

Oturum kapatma işlevinin uygulanması en basit olandır. Tek yapmamız gereken session değişkeni user'ın null olmasına ve kullanıcının ana sayfaya yönlendirilmesidir.

app.py dosyasında, gösterildiği gibi logout için yeni bir route ve method oluşturun:

Oturum kapatma düğmesi için href'i zaten /logout olarak ayarladık. Bu nedenle tüm değişiklikleri kaydedin ve sunucuyu yeniden başlatın. Giriş sayfasından Sign In'i tıklayın ve geçerli bir e-posta adresi ve şifre kullanarak giriş yapmayı deneyin. Oturum açtıktan sonra, kullanıcı anasayfasında Logout düğmesine tıklayınca uygulamadan başarıyla çıkış yapmalısınız.

Sonuç

Eğitimin bu bölümünde, kullanıcı oturum açmayı ve oturum kapatma işlevini nasıl uygulayacağımızı gördük. Ayrıca uygulama sayfalarına izinsiz erişimi kısıtlamayı da gördük. Bu eğitimin sonraki bölümünde, oturum açmış bir kullanıcının, uygulamaya bir blog yazısı ekleyip düzenleyeceği işlevselliği uygulayacağız.

Bu eğitimin kaynak kodu GitHub'da mevcuttur.

Aşağıdaki yorumlarda düşüncelerinizi bize bildirin!

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.