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