Flask CRUD Part 1 – User Login-bag2

sebelum mengikuti tutorial ini baca tutorial sebelumnya Flask CRUD Part 1 – User Login-bag1

pada tutorial kali ini kita akan membuat home page project Flask Crud. pada kerangka kerja di tutorial sebelumnya, buat sebuah file auth.py tempatkan di direktory views.py

Flask CRUD Part 1 – User Login-bag2

kemudian buat form login dan register pada folder template seperti di bawah ini:

Flask CRUD Part 1 – User Login-bag2

selanjutnya pada folder views buat sebuah file dengan nama forms.py

Flask CRUD Part 1 – User Login-bag2

pada saat ini kita telah membuat kerangka kerja lengkap. selanjutnya buat sebuah class model user pada models.py. lihat tutorial sebelumya pada table schema yang sudah kita buat.

untuk membuat model user kita perlu menginstal terlebih dahulu flask alchemy

pip install flask_sqlalchemy

kemudian buat variable global dengan nama db dan modifikasi file __init__.py seperti di bawah ini

from flask import Flask
import os
import configparser
from flask_sqlalchemy import SQLAlchemy
 
config_parser = configparser.ConfigParser()
config_parser.read('config.ini')
db = SQLAlchemy()
 
def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_pyfile('config.py')
    app.config['SECRET_KEY'] = config_parser['DEFAULT']['SECRET_KEY']
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
 
    db.init_app(app)
 
    return app

step berikutnya buat class user pada models.py

from app import db
 
class Users(db.Model):
    __tablename__ = 'user'
 
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(35), index=True, unique=True)
    first_name = db.Column(db.String(35), index=True)
    last_name = db.Column(db.String(35), index=True)
    password_hash = db.Column(db.String(150))

step berikutnya buat sebuah url root yang akan tampil saat kita memanggil root url pada project kita.

buat sebuah file di views dengan nama home.py

from flask import Blueprint
from flask import abort, render_template
 
home = Blueprint('home', __name__)
 
@home.route('/')
def homepage():
    """
    Render the homepage template on the / route
    """
    return render_template('home/index.html', title="Welcome")

 

perhatikan kode di atas, bagaimana flask melakukan render template. untuk membuat template sebelumnya buat terlebih dahulu base.html letakan di root direktori templates. kemudian buat index.html dan simpan di direktory templates/home

{% extends "base.html" %}
{% block title %}Home{% endblock %}
{% block body %}
<div class="intro-header">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <div class="intro-message">
                    <h1>FLASK CRUD PART 1</h1>
 
                </div>
            </div>
        </div>
    </div>
</div>
{% endblock %}

 

langkah selanjutnya letakan script di bawah ini pada app/__init__.py

...........
 
from app.views.home import home as home_blueprint
    app.register_blueprint(home_blueprint)
 
    .........

 

sekarang coba jalankan flask dengan cara

export FLASK_RUN=run.py
flask run

kemudian buka pada web browser

localhost:5000

jika semua berjalan lancar hasilnya seperti di bawah ini

 

** tutorial selanjutnya Flask CRUD Part 1 – User Login-bag3 ( form login dan register )

download source

Pdf Thumbnail #Wand

“Wand is a ctype-based simple ImageMagick binding for Python”.

wand merupakan library canggih yang dapat kamu manfaatkan mengolah berbagai file dalam banyak tipe data.

pemanggilan library wand sangat simple dan mudah di pahami. perhatikan sample di bawah ini bagaimana wand mengubah pdf ke image dan meresize image tersebut menjadi thumbnail.

from wand.image import Image
# Converting first page into JPG
with Image(filename="intro.pdf[0]") as img:
     img.save(filename="temp-0.jpg")
# Resizing this image
with Image(filename="temp-0.jpg") as img:
     img.resize(200, 150)
     img.save(filename="thumbnail_resize_intro.jpg")

untuk dokumentasi cek di sini

 

Find Text in Directory ?

How to find variable string or integer in a directory ?

consider the sample below :

import glob
import os
os.chdir( "/home/ALFIN/" )
for files in glob.glob( "*" ):
    f = open( files, 'r' )
    file_contents = f.read()
    if "DARAH MUDA" in file_contents:
            print(f.name)
    f.close()

good luck !

Simple MVC, Part 1

SimpleMVC

Pada tutorial kali ini kita akan membuat sebuah MVC sederhana dengan memanfaatkan SqlAlchemy sebagai database toolkitnya.

step pertama(1)

buat sebuah project dengan nama SimpleMVC kemudian buat sebuah environment untuk project tersebut. baca tutorial sebelumnya tentang virtual environment

sebelum ke step berikutnya buat sebuah database dan tambahkan table berikut

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `full_name` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(150) NOT NULL,
  PRIMARY KEY (`id`)
)

 

step ke-dua(2)

di step kedua install requirements yang di butuhkan (mysqlclient,SQLAlchemy
) dengan pip

pip install mysqlclient SQLAlchemy

Step ke-tiga(3)

buat sebuah model sebagai class schema table di database dengan nama models.py

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
 
Base = declarative_base()
 
class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    full_name = Column(String(50), nullable=False)
    email = Column(String(50), nullable=False)
    password = Column(String(150), nullable=False)
 
engine = create_engine('mysql://alfin:admin@localhost/pymysqlalchemy')
Base.metadata.create_all(engine)
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)

Step ke-empat(4)

buat sebuah view untuk menamplikan data dengan nama views.py

def showAllView(list):
    lst =[]
    ldata={}
    for xc in list:
        ldata['full_name'] = xc.full_name
        ldata['email'] = xc.email
        lst.append(ldata)
    print(lst)

Step ke-lima(5)

buat sebuah controller untuk melakukan proses manipulasi data dengan nama controller.py

from models import User,DBSession
from views import *
 
class Controller(object):
    def __init__(self):
        self.session = DBSession()
 
    def selUser(self):
        get_data = self.session.query(User).all()
        return showAllView(get_data)
 
 
 
if __name__ == '__main__':
    c = Controller()
    c.selUser()

Step ke-enam(6)

run pada command line

python controller.py

 

download source lengkap : https://github.com/alfinfanther/SimpleMVC

selamat mencoba 🙂