Skip to main content

Code base to jump start flask-classy system

This post is just to announce my sharing of a source code base which can be used to jump start development using the python micro framework flask and it's excellent extension flask-classy. Do note that this code base uses the Ace Admin bootstrap theme. Please purchase the license for your use from wrapbootstrap or remove it from your source code referencing it.

To begin, you need to clone the repository using mercurial:
hg clone https://bitbucket.org/abdza/flask-classy-base-system examplesystem

Then you need to create the virtualenv for your system:
virtualenv --python=/usr/bin/python2 examplesystem

Do note that my example here is running on arch linux which uses python3 as the default python version. I suggest the above command to use python2 in your virtualenv because it makes things easier to migrate to systems using python2 (eg ubuntu, centos and others).

The you need to go into the directory and activate the virtualenv:
cd examplesystem
source bin/activate

Then you need to install all the required python modules into your virtualenv:
pip install -r requirements.txt

Once all that is done you need to configure your database access by editing the file app/config.py
Update the SQLALCHEMY_DATABASE_URI line with your own database setting:
SQLALCHEMY_DATABASE_URI = 'postgresql://<username>:<password>@localhost/<database>'

So for this example I changed it to:
SQLALCHEMY_DATABASE_URI = 'postgresql://exampleuser:examplepass@localhost/exampledb

You'd probably want to update the SECRET_KEY, APP_NAME and COMPANY_NAME too.

Then you need to create the appropriate postgres database, role, grant and allow the user to login.
sudo -u postgres psql
postgres=# create database exampledb;
postgres=# create role exampleuser with password 'examplepass';
postgres=# grant all on database exampledb to exampleuser;
postgres=# alter user exampleuser login;
Then you can test the user and database connection:
postgres=# \c - exampleuser
postgres=> \c exampledb
If there is no error, then you can continue to the next step after you quit postgres:
exampledb=> \q
You then need to init the database by running:
./run.py db init
./run.py db migrate
./run.py db upgrade
That should get your database updated with all your models (which currently is only User)
You can try running it now:
./run.py
Then in your web browser go to the address below and register your new user:
http://localhost:5000/user/register

After all of that, you should probably edit your .hg/hgrc file and point the default path to your own repository.

Once everything is set, you can begin your development. Add a new model by adding a file in the app/models directory. For example lets add the file app/models/Post.py:
from app import db

class Post(db.Model):
 id = db.Column(db.Integer,primary_key=True)
 name = db.Column(db.String)
 content = db.Column(db.Text)

Then you need to tell your app about the existence of this model by adding the following line to app/models/__init__.py:
from Post import Post
Once you have added your model files, you can generate the view associated with that model:
./run.py genview

You can then see the generated view files at app/views/PostView.py

Before you can view the view in your web browser, make sure your database get updated first with your newly added model:
./run.py db migrate
./run.py db upgrade
Then you can view the view page by pointing your web browser to:
http://localhost:5000/post

You can then start editing the view for your model and your processes. For example we can add the Post field in your form by changing the ItemForm class in your app/views/PostView.py:
class ItemForm(Form):
 name = StringField('Name',validators=[DataRequired()])
 post = TextAreaField('Post')
That's all for the introduction to this code base. Hope it is useful for you to jump start your development using flask and flask-classy.

Comments

Popular posts from this blog

Dell Inspiron Mini 9

Yesterday went to Low Yat to buy my cousin a sub RM 1500 notebook. Of course with that kind of price tag it would have to be a netbook jelah. Anyhow, I was short on time so I didn't get to browse thoroughly. Just went for one quick round around level 2 and picked the one that I thought would fulfil his need. The thing is, as soon as I stepped out of the lift there was a shop that sold the new Dell Inspiron Mini 9 for only RM 1199. I was suprised. Just 1199. I couldn't believe my eyes. With original Windows XP and all. RM 1199. I thought there must be something wrong. Better survey first. So went around level 2. There was nothing that could match that price. Most of the other netbook from acer, asus and lenovo even was around RM 1600. So I decided I'll just go with the Dell lah. But to tell you the truth if I had money to buy for my own use, I'd go with the Lenovo Ideapad S10. Fuh.. she's one sweet mama... Smooth rounded curves, slim white profile. Pergh.. But anyway

First godot game published

I haven't published anything in google play for a very long time. I'm very happy to finally introduce my latest project to the public. It is a casual game called..... Add Block. Yeah.. The best original game name award coming right up. But seriously, try it out. Find in at the play store here . I love playing casual games on my phone. It's great to pass the time. But it doesn't really do anything for your skills. Or at least not anything for real life important skills (yes, I don't consider being able to identify the consecutive shapes or color as really important). So I decided to create one. So in this game, you practice your math skills. Find the adjacent blocks that add up to the total you need. So it's math, math is important right? Right?.... The levels are unlimited, the idea is that you keep on playing until you can't anymore. You'll die if you finally can't get the number of wins required to pass the level in time. You only have 100 se

Me and my sleep apnea

I have been suffering from sleep apnea for quite a few years already. It started to show when I was still with OSCC some 6 years back when I would sometimes "accidentally" sleep at my cubicle. Early on I just dismissed it as because I was growing fat (we ate a lot at OSCC.. :P and I barely went anywhere except my cubicle) and also because of babies. Oh babies.. those cute little things that keeps you awake at night so that they can be so cute and charming when your friends and relatives come over the next day. So it was dismissed. Later on I got more and more used to sleeping at work, started associating it with my lack of motivation and sometimes feeling of downright depression. And I kept growing fatter and fatter, which I assumed was the reason why I was getting more and more tired. But then around 2 years ago a friend of mine suggested maybe I've got sleep apnea. And a few other people suggested I go to a sleep clinic and all that. Put it off for quite a while. Unti