As I start this document, I'm quite new to Flask, this is how I use it for my own project.
parent
c8d18b85a9
commit
556526caec
1 changed files with 61 additions and 0 deletions
61
Large-app-how-to.md
Normal file
61
Large-app-how-to.md
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
This document is an attempt to describe the first step of a large project structure with flask and some basic modules:
|
||||
* SQLAlchemy
|
||||
* WTF (What The Form)
|
||||
|
||||
Please feel free to fix and add you own tips.
|
||||
|
||||
# Installation
|
||||
## Flask
|
||||
[http://flask.pocoo.org/docs/installation/](Flask Installation)
|
||||
I recommend using virtual env: easy and allow multiple environment on the same machine and doesn't even require you to have super user right on the machine (as the libs are localy installed).
|
||||
|
||||
|
||||
|
||||
## Flask-SQLAlchemy
|
||||
SQL provide an easy and advanced way to serialize your object to different type of relational database. In your virutal env, install SQLAlchemy from pip:
|
||||
|
||||
pip install flask-sqlalchemy
|
||||
|
||||
## Flask-WTF
|
||||
WTF (What the Form) Provides a easy way to handle user's data submission.
|
||||
|
||||
pip install Flask-WTF
|
||||
|
||||
# Overview
|
||||
Ok, so from now, we should have all the libs ready. Here the folder structures:
|
||||
|
||||
config.py
|
||||
run.py
|
||||
shell.py
|
||||
app.db
|
||||
app/__init__.py
|
||||
app/constants.py
|
||||
|
||||
For every module (or sub app... ) well have this file structure (here for the users module)
|
||||
|
||||
app/users/__init__.py
|
||||
app/users/views.py
|
||||
app/users/forms.py
|
||||
app/users/constants.py
|
||||
app/users/models.py
|
||||
app/users/decorators.py
|
||||
|
||||
We'll create 4 modules, a user module (manage user's registration, login, password lost, profile edit and maybe Third party Login/Registration) an email sub module intended to be used by a queuing server, and a post and comments modules
|
||||
|
||||
## Config
|
||||
`run.py` will be used to launch the web server.
|
||||
|
||||
from tol import app
|
||||
app.run(debug=True)
|
||||
|
||||
`shell.py` will allow you to get a console and enter commands within your flask environment. Maybe not as nice as debugging with pdb, but always usefull (when you will initialize your database)
|
||||
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
import readline
|
||||
from pprint import pprint
|
||||
|
||||
from flask import *
|
||||
from app import *
|
||||
|
||||
os.environ['PYTHONINSPECT'] = 'True'
|
||||
Loading…
Add table
Add a link
Reference in a new issue