flask nedir

Flask Nedir?

Flask, Python’da web uygulamaları geliştirmek için kullanılan bir mikro çerçevedir. Hafif, esnek ve kullanımı kolaydır. Flask, web uygulamaları geliştirmek için gereken temel özellikleri sağlar ve geliştiricilere kendi uygulamalarını oluşturma özgürlüğü verir.

Flask’ın Özellikleri

  • Hafiftir ve kurulumu kolaydır.
  • Esnektir ve geliştiricilere kendi uygulamalarını oluşturma özgürlüğü verir.
  • Kullanımı kolaydır ve öğrenmesi hızlıdır.
  • Geniş bir topluluğa sahiptir ve birçok kaynak mevcuttur.
  • Ücretsiz ve açık kaynaklıdır.

Flask’ın Kullanım Alanları

Flask, çeşitli web uygulamaları geliştirmek için kullanılabilir. Bunlardan bazıları şunlardır:

  • Bloglar
  • E-ticaret siteleri
  • İçerik yönetim sistemleri
  • Sosyal medya platformları
  • Mobil uygulamalar
  • API’ler

Flask ile Nasıl Başlanır?

Flask ile başlamak için aşağıdaki adımları izleyebilirsiniz:

  1. Python’ı bilgisayarınıza yükleyin.
  2. Flask’ı pip komutuyla yükleyin:

pip install Flask

  1. Bir Flask uygulaması oluşturun:

“`
from flask import Flask

app = Flask(name)

@app.route(‘/’)
def hello_world():
return ‘Hello, World!’

if name == ‘main‘:
app.run()
“`

  1. Uygulamanızı çalıştırın:

python app.py

  1. Uygulamanıza bir web tarayıcısı üzerinden erişin:

http://localhost:5000

Flask’ta Rota Oluşturma

Flask’ta rota oluşturmak için @app.route() dekoratörünü kullanabilirsiniz. Bu dekoratör, bir fonksiyonu belirli bir URL’ye eşler. Örneğin, aşağıdaki kod bir hello_world() fonksiyonunu / URL’sine eşler:

@app.route('/')
def hello_world():
return 'Hello, World!'

Flask’ta Görünüm Oluşturma

Flask’ta görünüm oluşturmak için render_template() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, bir HTML şablonunu işler ve bir HTTP yanıtına dönüştürür. Örneğin, aşağıdaki kod hello_world.html adlı bir şablonu işler ve bir HTTP yanıtına dönüştürür:

@app.route('/')
def hello_world():
return render_template('hello_world.html')

Flask’ta Veritabanı Kullanımı

Flask’ta veritabanı kullanmak için SQLAlchemy adlı bir ORM (Nesne İlişkisel Eşleme) kütüphanesi kullanabilirsiniz. SQLAlchemy, veritabanı ile Python nesneleri arasında bir köprü görevi görür. Örneğin, aşağıdaki kod bir User adlı bir model oluşturur ve bu modeli bir veritabanına kaydeder:

“`
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)

user = User(username=’admin’, password=’password’)
db.session.add(user)
db.session.commit()
“`

Flask’ta Form İşleme

Flask’ta form işlemek için request nesnesini kullanabilirsiniz. request nesnesi, istemciden gelen HTTP isteği hakkında bilgi içerir. Örneğin, aşağıdaki kod bir formdan gelen verileri işler ve bir veritabanına kaydeder:

“`
from flask import request

@app.route(‘/register’, methods=[‘POST’])
def register():
username = request.form[‘username’]
password = request.form[‘password’]

user = User(username=username, password=password)
db.session.add(user)
db.session.commit()

return redirect(url_for('login'))

“`

Flask’ta Dosya Yükleme

Flask’ta dosya yüklemek için request.files nesnesini kullanabilirsiniz. request.files nesnesi, istemciden gelen dosyaları içerir. Örneğin, aşağıdaki kod bir formdan gelen dosyayı işler ve bir sunucuya kaydeder:

“`
from flask import request

@app.route(‘/upload’, methods=[‘POST’])
def upload():
file = request.files[‘file’]
file.save(‘uploads/’ + file.filename)

return redirect(url_for('home'))

“`

Flask’ta E-posta Gönderme

Flask’ta e-posta göndermek için Flask-Mail adlı bir uzantı kullanabilirsiniz. Flask-Mail uzantısı, e-posta göndermek için gereken özellikleri sağlar. Örneğin, aşağıdaki kod bir e-posta gönderir:

“`
from flask_mail import Mail, Message

mail = Mail(app)

@app.route(‘/send_email’)
def send_email():
msg = Message(‘Hello, World!’, sender=’[email protected]’, recipients=[‘[email protected]’])
msg.body = ‘This is a test email.’
mail.send(msg)

return redirect(url_for('home'))

“`

Flask’ta API Oluşturma

Flask’ta API oluşturmak için Flask-RESTful adlı bir uzantı kullanabilirsiniz. Flask-RESTful uzantısı, API oluşturmak için gereken özellikleri sağlar. Örneğin, aşağıdaki kod bir API oluşturur:

“`
from flask_restful import Api, Resource

api = Api(app)

class HelloWorld(Resource):
def get(self):
return {‘hello’: ‘world’}

api.add_resource(HelloWorld, ‘/hello’)
“`

Flask’ta Güvenlik

Flask’ta güvenlik sağlamak için Flask-Security adlı bir uzantı kullanabilirsiniz. Flask-Security uzantısı, kullanıcı yönetimi, oturum yönetimi ve yetkilendirme gibi güvenlik özellikleri sağlar. Örneğin, aşağıdaki kod Flask-Security uzantısını kullanarak bir kullanıcı oluşturur:

“`
from flask_security import SQLAlchemyUserDatastore, UserMixin, RoleMixin, login_required

user_datastore = SQLAlchemyUserDatastore(db, User, Role)

class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)

class Role(db.Model, RoleMixin):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), unique=True, nullable=False)

@app.route(‘/register’, methods=[‘POST’])
def register():
username = request.form[‘username’]
password = request.form[‘password’]

user = User(username=username, password=password)
user_datastore.create_user(user)

return redirect(url_for('login'))

@app.route(‘/login’, methods=[‘POST’])
def login():
username = request.form[‘username’]
password = request.form[‘password’]

user = user_datastore.find_user(username=username)
if user and user_datastore.check_password(user, password):
    login_user(user)
    return redirect(url_for('home'))

return redirect(url_for('login'))

@app.route(‘/logout’)
@login_required
def logout():
logout_user()
return redirect(url_for(‘home’))
“`

Flask’ta Uluslararasılaştırma

Flask’ta uluslararasılaştırma sağlamak için Flask-Babel adlı bir uzantı kullanabilirsiniz. Flask-Babel uzantısı, farklı dillerde içerik oluşturmak ve görüntülemek için gereken özellikleri sağlar. Örneğin, aşağıdaki kod Flask-Babel uzantısını kullanarak bir web uygulamasını uluslararasılaştırır:

“`
from flask_babel import Babel

babel = Babel(app)

@babel.localeselector
def get_locale():
return request.accept_languages.best_match(app.config[‘LANGUAGES’])

@app.route(‘/’)
def index():
return render_template(‘index.html’, locale=get_locale())
“`

Flask’ta Test Etme

Flask’ta test etmek için Flask-Testing adlı bir uzantı kullanabilirsiniz. Flask-Testing uzantısı, web uygulamalarını test etmek için gereken özellikleri sağlar. Örneğin,


Yayımlandı

kategorisi