Anda di halaman 1dari 15

Identifikasi SQLite dan Flask

Pengenalan SQLAlchemy dan Flask

Tujuan 1. Memahami apa itu SQLite dan Flask

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.

Flask adalah kerangka kerja aplikasi web bersifat


kerangka kerja mikro yang ditulis dalam bahasa
pemrograman Python dan menggunakan dependensi
Werkzeug dan Jinja2.
Flask bisa digunakan untuk membuat website rumit yang berbasis database, memulai dengan
membuat halaman statik berguna untuk memperkenalkan alur kerja, yang nantinya digunakan
untuk membuat halaman lain yang lebih rumit.

Langkah - langkah Instalasi SQLite


Langkah Pengerjaan

1. Pertama download Python https://www.python.org/downloads/ , Klik Download


Python 3.10.2 untuk Windows

2. Jika sudah terdownload maka buka file tersebut tekan OK jika muncul pop up
instalasi

3. Cara instalasi Python pada Windows


https://ar-android.github.io/belajar-flask/tutorial/installasi-python.html, Klik Instal
Now
4. Tunggu sampai proses selesai, lalu akan muncul Setup was Succesful

5. Cara instalasi SQLAlchemy pada Windows https://phoenixnap.com/kb/install-flask

6. Lakukan instalasi pada Command Prompt (Windows)

7. Cara instalasi SQLAlchemy pada Flask https://pypi.org/project/Flask-SQLAlchemy/

8. Lakukan instalasi pada Command Prompt (Flask)


9. Cara instalasi Flask
https://ar-android.github.io/belajar-flask/tutorial/installasi-flask.html

10. Lakukan instalasi pada Command Prompt


CRUD PADA SQLALCHEMY

Langkah Pengerjaan

1. Pertama import Database SQLAlchemy yang diperlukan.


from flask import Flask, request, flash, url_for, redirect,
render_template
from flask_sqlalchemy import SQLAlchemy

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"

3. Selanjutnya membuat model tabel yang dibutuhkan

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))

def __init__(self, name, city, addr,pin):


   self.name = name
   self.city = city
   self.addr = addr
   self.pin = pin
4. Selanjutnya kita membuat SHOW ALL, untuk menampilkan semua record yang
sudah di tambahkan
@app.route('/')
def show_all():
   return render_template('show_all.html', students =
students.query.all() )

5. Selanjutnya NEW, untuk menambahkan 1 record baru

@app.route('/new', methods = ['GET', 'POST'])


def new():
   if request.method == 'POST':
      if not request.form['name'] or not request.form['city'] or not
request.form['addr']:
         flash('Please enter all the fields', 'error')
      else:
         student = students(name=request.form['name'],
city=request.form['city'],
            addr=request.form['addr'], pin=request.form['pin'])
         
         db.session.add(student)
         db.session.commit()
         flash('Record was successfully added')
         return redirect(url_for('show_all'))
   return render_template('new.html')
Klik Tambah Student

Masukkan data siswa, lalu klik Submit

Data sudah berhasil di tambahkan

6. Selanjutnya membuat UPDATE


Menggunakan source seperti dibawah ini
@app.route('/<int:id>/update/', methods=('GET', 'POST'))
def update(id):
   student=students.query.filter_by(id=id).first()
   if request.method == 'POST':      
      student.name=request.form['name']
      student.city=request.form['city']
      student.addr=request.form['addr']
      student.pin=request.form['pin']
      db.session.commit()
      flash('berhasil di edit')
      return redirect(url_for('show_all'))
     
 
   return render_template('edit.html', student=student)
Klik Update pada salah satu data yang ingin di edit

Lalu edit data yang diperlukan, seperti nama kita ganti Azryan lalu kode Kota kita
ganti 65175, jika sudah klik Submit

Lalu akan muncul data berhasil di edit


7. Selanjutnya DELETE
Contoh dibawah ini source untuk update umur
@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)

Klik Delete pada salah satu data yang ingin di hapus, misal kita pilih Azryan

Maka data Azryan akan terhapus


Aplikasi CRUD Flask dengan SQLAlchemy

Pembuatan aplikasi sederhana CRUD

Tujuan 1. Memahami cara kerja aplikasi CRUD dengan SQLAlchemy

Langkah Pengerjaan

1. Buat show_all.html ketikkan kode program berikut untuk menampilkan data

<!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>

Selanjutnya, buat edit.html ketikkan kode program untuk EDIT 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 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.

Salin kode program berikut dan beri nama app.py

# 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))

def __init__(self, name, city, addr,pin):


   self.name = name
   self.city = city
   self.addr = addr
   self.pin = pin
# SHOW ALL ROUTE
@app.route('/')
def show_all():
   return render_template('show_all.html', students =
students.query.all() )
# NEW ROUTE
@app.route('/new', methods = ['GET', 'POST'])
def new():
   if request.method == 'POST':
      if not request.form['name'] or not request.form['city']
or not request.form['addr']:
         flash('Please enter all the fields', 'error')
      else:
         student = students(name=request.form['name'],
city=request.form['city'],
            addr=request.form['addr'], pin=request.form['pin'])
         
         db.session.add(student)
         db.session.commit()
         flash('Record was successfully added')
         return redirect(url_for('show_all'))
   return render_template('new.html')
# UPDATE ROUTE
@app.route('/<int:id>/update/', methods=('GET', 'POST'))
def update(id):
   student=students.query.filter_by(id=id).first()
   if request.method == 'POST':      
      student.name=request.form['name']
      student.city=request.form['city']
      student.addr=request.form['addr']
      student.pin=request.form['pin']
      db.session.commit()
      flash('berhasil di edit')
      return redirect(url_for('show_all'))
     
 
   return render_template('edit.html', student=student)

# 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)

13. Jalankan app.py pada Command Prompt pada folder tersebut.

Ketik kode program di bawah ini

Lalu jalankan dengan kode program di bawah ini

Anda mungkin juga menyukai