Belajar Python Flask Register

Belajar Python Flask Register

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.

Pastilah kalau kita ingin login ke dalam aplikasi apa pun pasti 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.

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 di kembalikan 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 adalah 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

{% 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.
Dimas Yoga Maulana
Seorang yang selalu ingin berbagi pengetahuan

Postingan Terkait

Posting Komentar

Dapatkan Artikel Terbaru Setiap Hari Via Email:

Jangan lupa lakukan Konfirmasi melalui link Aktivasi yang dikirimkan ke email Anda!