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