Pendahuluan
SQLAlchemy merupakan sekumpulan perangkat
lunak dengan sumber terbuka untuk SQL dan
Pemetaan Objek Relasional (object-relation
mapper disingkat dengan ORM) untuk bahasa
pemrograman PYTHON.
SQLAlchemy adalah sebuah Object Relational Mapper atau ORM. ORM memungkinkan
aplikasi untuk menggunakan database dengan data high-level seperti kelas, objek dan method
daripada menggunakan tabel dan kode SQL secara langsung. Tugas ORM adalah
menerjemahkan operasi high-level menjadi perintah database.
2. Jika sudah terdownload maka buka file tersebut tekan OK jika muncul pop up
instalasi
Langkah Pengerjaan
2. Setelah import database, lakukan setting SQL dan membuat database dengan nama
‘students’ atau bisa menggunakan nama lain yang anda inginkan.
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:///students.sqlite3'
app.config['SECRET_KEY'] = "random string"
class students(db.Model):
id = db.Column('student_id', db.Integer, primary_key =
True)
name = db.Column(db.String(100))
city = db.Column(db.String(50))
addr = db.Column(db.String(200))
pin = db.Column(db.String(10))
Lalu edit data yang diperlukan, seperti nama kita ganti Azryan lalu kode Kota kita
ganti 65175, jika sudah klik Submit
return redirect(url_for('show_all'))
if __name__ == '__main__':
db.create_all()
app.run(debug = True)
Klik Delete pada salah satu data yang ingin di hapus, misal kita pilih Azryan
Langkah Pengerjaan
<!DOCTYPE html>
<html lang = "en">
<head></head>
<body>
<h3>
<a href = "{{ url_for('show_all') }}">Flask
SQLAlchemy coba</a>
</h3>
<hr/>
{%- for message in get_flashed_messages() %}
{{ message }}
{%- endfor %}
<h3>Students (<a href = "{{ url_for('new') }}">Tambah
Student
</a>)</h3>
<table>
<thead>
<tr>
<th>No</th>
<th>Name</th>
<th>City</th>
<th>Address</th>
<th>Pin</th>
<th>Option</th>
</tr>
</thead>
<tbody>
{% for student in students %}
<tr>
<td>{{ student.id }}</td>
<td>{{ student.name }}</td>
<td>{{ student.city }}</td>
<td>{{ student.addr }}</td>
<td>{{ student.pin }}</td>
<td><a href="{{ url_for('delete',
id=student.id) }}">delete</a></td>
<td><a href="{{ url_for('update',
id=student.id) }}">update</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<h3>Students - Flask SQLAlchemy example</h3>
<hr/>
{%- for category, message in
get_flashed_messages(with_categories = true) %}
<div class = "alert alert-danger">
{{ message }}
</div>
{%- endfor %}
<form method = "post">
<label for = "name">Name</label><br>
<input type = "text" name = "name" placeholder =
"Name" value="{{student['name'] }}"/><br>
<label for = "email">City</label><br>
<input type = "text" name = "city" placeholder =
"city" value="{{student['city'] }}"/><br>
<label for = "addr">addr</label><br>
<textarea name = "addr" placeholder =
"addr">{{student['addr'] }}</textarea><br>
<label for = "PIN">City</label><br>
<input type = "text" name = "pin" placeholder = "pin"
value="{{student['pin'] }}" /><br>
<input type = "submit" value = "Submit" />
</form>
</body>
</html>
Lalu buat new.html ketikkan kode program untuk menambahkan NEW data
<!DOCTYPE html>
<html>
<body>
<h3>Students - Flask SQLAlchemy example</h3>
<hr/>
{%- for category, message in
get_flashed_messages(with_categories = true) %}
<div class = "alert alert-danger">
{{ message }}
</div>
{%- endfor %}
<form action = "{{ request.path }}" method = "post">
<label for = "name">Name</label><br>
<input type = "text" name = "name" placeholder =
"Name" /><br>
<label for = "email">City</label><br>
<input type = "text" name = "city" placeholder =
"city" /><br>
<label for = "addr">addr</label><br>
<textarea name = "addr" placeholder =
"addr"></textarea><br>
<label for = "PIN">City</label><br>
<input type = "text" name = "pin" placeholder =
"pin" /><br>
<input type = "submit" value = "Submit" />
</form>
</body>
</html>
11. Selanjutnya, buat App run untuk menjalankan aplikasi yang dibuat.
# IMPORT
from flask import Flask, request, flash, url_for, redirect,
render_template
from flask_sqlalchemy import SQLAlchemy
# sETTING
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:///students.sqlite3'
app.config['SECRET_KEY'] = "random string"
db = SQLAlchemy(app)
# MODEL
class students(db.Model):
id = db.Column('student_id', db.Integer, primary_key = True)
name = db.Column(db.String(100))
city = db.Column(db.String(50))
addr = db.Column(db.String(200))
pin = db.Column(db.String(10))
# DELETE ROUTE
@app.route('/<int:id>/delete/')
def delete(id):
student=students.query.filter_by(id=id).one()
db.session.delete(student)
db.session.commit()
return redirect(url_for('show_all'))
if __name__ == '__main__':
db.create_all()
app.run(debug = True)