- 9 Şub 2022
- 10
- 7
Flask ile Python' da hafif web uygulamaları yapabilirsiniz. Flask Python' un bir framework' ü dür.
Gerekli olan şeyler: Python, Flask
Sanal Ortam
Sanal ortam, en basit hâliyle, farklı python projelerini birbirinden bağımsız/izole şekilde kullanmaya yarayan yapıdır. Bir projede kullanılacak kütüphanelerin başka bir projede gerekli olmadığı durumlarda sanal ortam oluşturarak yer ve zamandan kazanırız.
Sanal ortamı yüklemek için bu komutu çalıştırıyoruz:
Sanal ortamı oluşturmak ve aktif hale getirmek için
sanal ortamın aktif olduğunu komutun başındaki (flask_env) den anlarız.
Flask Kurulum:
Flask' i yüklemek için terminalde bu kodu çalıştırıyoruz:
Proje dosyalarını içerecek bir klasör oluşturmalıyız.
( Örn: flask_proje )
Python komutlarını çalıştırmak için app.py adında bir python dosyası oluşturuyoruz.
Bu dosyayı açtıktan sonra python kodlarımızı yazacağımız app.py adında bir dosya oluşturuyoruz. Yapacağımız projede bir veritabanı olmayacak. Kullanıcı bilgilerini listelerde tutacağız. Projede bir python dosyası, HTML dosyaları ve CSS dosyası bulunacak.
![](https://i.hizliresim.com/e9rpta0.jpg)
Şimdi ilk olarak gerekli framework'ü ve kütüphanleri import edelim:
Bu kod bir Flask uygulaması oluşturur ve bu uygulamanın nerede bulunduğunu Flask'a bildirir:
Kullanıcı bilgilerini saklamak için bir liste oluşturalım:
Blog kısmına ilerde değineceğiz ama şimdi blogun içeriğindeki bilgileri oluşturan bir liste tanımlamalıyız:
Şuan oturum açmış kullanıcıyı saklamak için değişken tanımlamalıyız:
Flask uygulama nesnesinin istenen her URL için hangi kodu çalıştırması gerektiğini bilmesi gerekir. Bu, URL'lerin Python fonksiyonlarıyla eşlenmesiyle sağlanır. Bir URL ile onu çalıştıran fonksiyon arasındaki ilişkiye route denir.
Bu kod anasayfa için route tanımlar ve login.html şablonunu render eder.
Kullanıcı Kayıt
Bu kod POST isteği geldiğinde, formdan alınan bilgilerle yeni bir kullanıcı oluşturulup users listesine ekler. GET isteği geldiğinde, register.html şablonu render eder.
Kullanıcı Giriş
Bu kod POST isteği ile gelen email ve parola bilgilerini users listesinde kontrol eder ve eşleşen kullanıcı bulunursa current_user olarak atar, aksi halde "Giriş başarısız!" mesajı döner.
Çıkış Yapma
current_user None olarak ayarlanır ve anasayfaya yönlendirilir.
Blog Sayfası
Bu kod eğer current_user yoksa kullanıcıyı anasayfaya yönlendirir, aksi halde blog.html şablonu render edilerek users ve articles listeleri şablona gönderilir.
profile ve edit_profile sayfaları henüz tasarlanmadı o yüzden oraları atlıyorum.
Uygulamayı Başlatmak İçin
Bu kod, uygulamanın direkt çalıştırıldığında debug modunda başlamasını sağlar.
Bu basit uygulama örneği üzerinden edindiğiniz bilgilerle, daha karmaşık ve işlevsel web projeleri geliştirebilirsiniz. İyi çalışmalar.
Gerekli olan şeyler: Python, Flask
Sanal Ortam
Sanal ortam, en basit hâliyle, farklı python projelerini birbirinden bağımsız/izole şekilde kullanmaya yarayan yapıdır. Bir projede kullanılacak kütüphanelerin başka bir projede gerekli olmadığı durumlarda sanal ortam oluşturarak yer ve zamandan kazanırız.
Sanal ortamı yüklemek için bu komutu çalıştırıyoruz:
Kod:
pip install virtualenvwrapper-win
Sanal ortamı oluşturmak ve aktif hale getirmek için
Kod:
mkvirtualenv flask_env
sanal ortamın aktif olduğunu komutun başındaki (flask_env) den anlarız.
Flask Kurulum:
Flask' i yüklemek için terminalde bu kodu çalıştırıyoruz:
Kod:
pip install flask
Proje dosyalarını içerecek bir klasör oluşturmalıyız.
( Örn: flask_proje )
Python komutlarını çalıştırmak için app.py adında bir python dosyası oluşturuyoruz.
Bu dosyayı açtıktan sonra python kodlarımızı yazacağımız app.py adında bir dosya oluşturuyoruz. Yapacağımız projede bir veritabanı olmayacak. Kullanıcı bilgilerini listelerde tutacağız. Projede bir python dosyası, HTML dosyaları ve CSS dosyası bulunacak.
![](https://i.hizliresim.com/e9rpta0.jpg)
Şimdi ilk olarak gerekli framework'ü ve kütüphanleri import edelim:
Python:
from flask import Flask, render_template, request, redirect, url_for
Python:
app = Flask(__name__)
Kullanıcı bilgilerini saklamak için bir liste oluşturalım:
Python:
users = []
Blog kısmına ilerde değineceğiz ama şimdi blogun içeriğindeki bilgileri oluşturan bir liste tanımlamalıyız:
Python:
articles = []
Şuan oturum açmış kullanıcıyı saklamak için değişken tanımlamalıyız:
Python:
current_user = None
Flask uygulama nesnesinin istenen her URL için hangi kodu çalıştırması gerektiğini bilmesi gerekir. Bu, URL'lerin Python fonksiyonlarıyla eşlenmesiyle sağlanır. Bir URL ile onu çalıştıran fonksiyon arasındaki ilişkiye route denir.
Python:
@app.route('/')def home(): return render_template('login.html')
Kullanıcı Kayıt
Python:
@app.route('/register', methods=['GET', 'POST'])def register():
if request.method == 'POST':
username = request.form['username']
email = request.form['email']
password = request.form['password']
users.append({'username': username, 'email': email, 'password': password, 'profile': ''})
return redirect(url_for('home'))
return render_template('register.html')
Kullanıcı Giriş
Python:
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
email = request.form['email']
password = request.form['password']
users.append({'username': username, 'email': email, 'password': password, 'profile': ''})
return redirect(url_for('home'))
return render_template('register.html')
Çıkış Yapma
Python:
@app.route('/logout')
def logout():
global current_user
current_user = None
return redirect(url_for('home'))
current_user None olarak ayarlanır ve anasayfaya yönlendirilir.
Blog Sayfası
Python:
@app.route('/blog')
def blog():
if current_user is None:
return redirect(url_for('home'))
return render_template('blog.html', users=users, articles=articles)
Bu kod eğer current_user yoksa kullanıcıyı anasayfaya yönlendirir, aksi halde blog.html şablonu render edilerek users ve articles listeleri şablona gönderilir.
profile ve edit_profile sayfaları henüz tasarlanmadı o yüzden oraları atlıyorum.
Uygulamayı Başlatmak İçin
Python:
if __name__ == '__main__':
app.run(debug=True)
Bu basit uygulama örneği üzerinden edindiğiniz bilgilerle, daha karmaşık ve işlevsel web projeleri geliştirebilirsiniz. İyi çalışmalar.