Cara Membuat Form Flask-Login Dengan Python

Cara Membuat Form Flask-Login Dengan Python
Flask-Login – Hai semuanya masih bersama saya disini, dalam postingan sebelumnya sudah saya posting flask hello world dan lainnya. Kemudian dalam postingan ini saya akan menunjukan cara pembuatan data register di flask atau flask user management authentication.
Pastilah kalau kita ingin login ke dalam aplikasi apa pun tentu kita harus mendaftar terlebih dahulu, entah itu mendaftar menggunakan email, facebook atau apa pun.
Kalau kita tidak punya data register maka kita tidak akan bisa login. Tapi postingan ini hanya akan menggunakan cara register biasa atau sesuai inputan form username dan password jadi tidak menggunakan email atau pun facebook.

Cara Membuat Flask-Login User Management Authentication

Kita perlu melakukan perubahan pada database dalam file models.py seperti berikut:
from app import app, db
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    password = db.Column(db.String(64), index=True, unique=True)
    def __repr__(self):
        return self.username
Dalam file forms.py kita buat class form untuk membuat form flask karena kita tidak akan menggunakan inputan html biasa, isi file forms.py adalah sebagai berikut:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Length
from app.models import User
class RegisterForm(FlaskForm):
    username = StringField(“Username”, validators=[DataRequired(), Length(min=3, max=50)])
    password = PasswordField(“Password”, validators=[DataRequired(), Length(min=6, max=50)])
    submit = SubmitField(“Kirim”)
Kita buat form register seperti di atas untuk membuat field atau inputan username dan password dan juga tombol submit.
Ketika pengguna memasukan username kurang dari 3 dan password kurang dari 6 huruf maka akan dikembalikan ke halaman register lagi.
Kemudian dalam file views.py juga kita memberikan beberapa perubahan untuk pendaftaran sebagai berikut:
from flask import Flask, render_template, url_for, redirect, request, session
from app import app, db
from app.models import User
from app.forms import RegisterForm
@app.route(“/”, methods=[“GET”, “POST”])
@app.route(“/index”, methods=[“GET”, “POST”])
def index():
    form = RegisterForm(request.form)
    if request.method == “POST” and form.validate_on_submit():
      username = request.form[“username”]
      password = request.form[“password”]
      masukan = User(username=username, password=password)
      db.session.add(masukan)
      db.session.commit()
      return redirect(url_for(‘success’))
return render_template(“index.html”, form=form)
@app.route(“/success”)
def success():
    return render_template(“success.html”)
Kalau input form kurang dari validasi di file forms.py maka akan kembali ke halaman daftar dan kalau berhasil maka akan menuju ke halaman success.
Sekarang kita ubah file.index.html yang akan digunakan untuk pendaftaran. Isi file index.html yaitu sebagai berikut:
{% extends “base.html” %}
{% block content %}
<h3>Daftar</h3>
<form action=” method=’POST’>
    {{ form.hidden_tag() }}
    {{ form.username() }}
    {{ form.password }}
    {{ form.submit() }}
</form>
{% endblock %}
Seperti yang kita lihat pada form di atas pertama kita beri {{ form.hidden_tag() }} karena untuk awal pembuatan form flask.
Setelah itu kita memasukan form username, password dan tombol submit yang sudah di buat dalam file forms.py.
Selanjutnya kita menuju ke halaman success.html yang akan digunakan ketika kita berhasil melakukan pendaftaran maka kita akan dialihkan ke halaman success, isi file success.html seperti berikut:
{% extends “base.html” %}
{% block content %}
 <h1>Success</h1>
{% endblock %}
Oke selanjutnya setelah selesai semuanya maka kamu bisa membuat database menggunakan perintah python di terminal dengan masuk ke python kemudian ketik seperti berikut:
from app import app, db
from app.models import User
db.create_all()
Database siap digunakan dan sekarang coba jalankan python app.py dan lihat di browser dengan localhost:5000, kamu bisa mencobanya sendiri.

Leave a Reply

Your email address will not be published. Required fields are marked *