15%

Konfigurasi Dasar CMS LinkFlask

25-Sep-2020

Setelah Anda mendapatkan CMS LinkFlask dan berhasil menjalankan dalam mode development, Maka langkah selanjutnya adalah mengkonfigurasi beberapa file sebelum diupload ke hosting ataupun server vps agar segera online. Anda tentu tidak mau jika CMS Anda ini hanya berjalan dalam mode development/debug yang hanya bisa Anda lihat sendiri pada komputer Anda, dengan mengupload ke hosting maka CMS blog dapat dilihat semua orang.

Sebelum kita memulai konfigurasi kita harus mengetahui dahulu struktur CMS. Lihat struktur dibawah ini (tidak termasuk virtual environment):

│   requirements.txt
│   run.py
│
└───portal
    │   models.py
    │   utils.py
    │   __init__.py
    │
    ├───admin
    │   │   forms.py
    │   │   routes.py
    │   │   utils.py
    │   │   __init__.py
    │   │
    │
    ├───api
    │   │   routes.py
    │   │   schema.py
    │   │   __init__.py
    │   │
    ├───auth
    │   │   forms.py
    │   │   routes.py
    │   │   utils.py
    │   │
    │   └───__pycache__
    │           forms.cpython-38.pyc
    │           routes.cpython-38.pyc
    │           utils.cpython-38.pyc
    │
    ├───posts
    │   │   forms.py
    │   │   routes.py
    │   │   utils.py
    │   │   __init__.py
    │   │
    │
    ├───static
    │   ├───css
    │   │       bulma.css
    │   │       bulma.css.map
    │   │       bulma.min.css
    │   │       mystyles.css
    │   │       select2-spinner.gif
    │   │       select2.png
    │   │       style.css
    │   │
    │   ├───src
    │   │       easing.min.js
    │   │       jquery-1.12.4.min.js
    │   │
    │   └───upload
    │       │   728x90ads.png
    │       │
    │       ├───img
    │       ├───img_thumbnail
    │       │       default.jpg
    │       │
    │       └───profile_pics
    │               default.jpg
    │
    ├───templates
    │   ├───admin
    │   │       account.html
    │   │       add_tag.html
    │   │       comments.html
    │   │       create_page.html
    │   │       create_post.html
    │   │       home.html
    │   │       kategori.html
    │   │       layout.html
    │   │       mail.html
    │   │       pages.html
    │   │       subscribers.html
    │   │       tag.html
    │   │       tambah_kategori.html
    │   │       users.html
    │   │       user_posts.html
    │   │
    │   ├───auth
    │   │       layout.html
    │   │       login.html
    │   │       register.html
    │   │       reset_request.html
    │   │       reset_token.html
    │   │
    │   ├───error
    │   │       403.html
    │   │       404.html
    │   │
    │   └───post
    │           category.html
    │           create_post.html
    │           detail.html
    │           halaman.html
    │           home.html
    │           hubungi.html
    │           hubungi_ori.html
    │           kategori.html
    │           login.html
    │           main.html
    │           post.html
    │           sitemap.xml
    │           subscribe.html
    │           topik.html
   

 

Mengganti Nama Blog

Silahkan buka file utils.py yang berada pada folder posts (posts/utils.py),

def utils_context():

    ...

    blog_name = 'LinkFlask'

 

Ganti value blog_name dengan nama yang Anda inginkan. Jika Anda ingin mengganti logo kita harus menambahkan pada templates jinja2 yang akan kita bahas pada artikel selanjutnya.


Konfigurasi __init__.py Untuk WebForm

Buka file __init__.py pada root folder, Anda dapat menggunakan code editor yang biasa Anda gunakan.
perhatikan kode pada baris 17
app.config['SECRET_KEY'] = 'secretkey'
nilai secretkey harus diubah untuk keamanan, app.config[‘secret_key’] berfungsi untuk melindungi formulir dari serangan hacker atau CSRF. Flask menggunakan nilai kunci rahasia sebagai kriptografi untuk keamanan.
Ada banyak sekali modul/library python builtin yang Anda bisa gunakan seperti random, secrets dan lainnya. Disini kita akan menggunakan secret.
Buka interpreter python dengan mengetik python pada cmd

>>> import secrets
>>> secrets.token_hex(16)
'd1a91392fa1f731b4fdb4f2d000b8d5c'
>>>

Jika Anda ingin menggunakan random string dengan module/library silahkan saja.

 

Konfigurasi Database

Masih pada file __init__.py pada root folder, perhatikan pada baris 18-20.

# app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/database'

# app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost:5432/database'

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'

Untuk mode development/debug yang kita gunakan adalah baris 20 yaitu SQLite sedangkan untuk baris 18 jika Anda ingin menggunakan MySQL dan jika menggunakan database Postgres maka gunakan baris 19.


Untuk production saya sangat menyarankan menggunakan MySQL atau Postresql agar dapat menampung banyak request query sedangkan mode development/debug kita menggunakan SQLite yang lebih ringan dan mudah untuk dihapus dan dibuat lagi serta kita tidak perlu menginstal apapun karena sqlite builtin python.

Pada akhir development/debug barulah kita uji dengan database seperti MySQL atau PostgreSQL untuk memastikan semua berjalan baik dan pastikan Anda menguji database yang sama dengan database yang akan Anda gunakan pada hosting/vps. Baca disini tentang Database SQL.

 

Konfigurasi Email Administrator

Masih pada file __init__.py pada root folder, Sekarang perhatikan pada baris 27:

app.config['ADMIN_BLOG'] = 'email@email.com'


Saya membuat variabel yaitu tipe data dictionary dengan key ADMIN_BLOG silahkan Anda mengisi/ganti dengan email Anda.
Cara kerja adalah ketika Anda registrasi maka Class User pada models.py akan membuat role secara default dengan kondisi yang telah diuraikan pada method class user (Silahkan buka models.py).

 

Konfigurasi Flask-Mail

Masih pada file __init__.py pada root folder, Sekarang perhatikan pada baris 43-47:

app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = 'email@gmail.com'
app.config['MAIL_PASSWORD'] = 'password'


Disini Anda dapat menyesuaikan sendiri dengan provider yang Anda gunakan, secara default konfigurasi yang saya buat untuk Gmail. Jika Anda menggunakan Gmail maka Anda hanya perlu mengganti email dibaris 46 dan password dibaris 47. Perlu diketahui Gmail Anda harus diberi akses https://myaccount.google.com/lesssecureapps

Topik : python Flask
Similar Posts

Komentar (2)

Dahliana
hai, mengenai secrets key, apakah bisa kalau saya menggunakan modul lain selain secrets key, misal uuid atau random?
Reply · 27-September-2020 14:28 WIB

Ramadhani
Anda silahkan menggunakan modul tersebut jika Anda suka, yang jelas value bertipe data string. Setiap modul/library yang Anda sebutkan diatas mempunyai algoritma dan cara yang berbeda dalam penggunaannya. Silahkan sesuaikan
27-September-2020 15:26 WIB


Tinggalkan Komentar