Giter VIP home page Giter VIP logo

flask-skeleton's Introduction

	This is a "LAMP" stack done right... but using *NIX (FreeBSD/Mac),
	nginx, memcache, python and postgresql. :~]

There are several goals with this Skeleton:

1) To demonstrate Flask in action in a complete context, as opposed to the
fragmented set of tools that comprise Flask. Flask as a collection of modules
is great, btw!, but it means you have to bootstrap constantly. Skeleton is
out to combat that.

2) To demonstrate various best practices and combat the effects of the MySQL
stupid juice. Use of MySQL has led to some incredibly bad examples for how to
do things that end up being adopted by organizations and developers as "the
way" for open source products, but in professional development land, there
are diverging strategies. Document and exhibit an increasing number of them
here. Over time, I'd like to incorporate improved practices as they become
known.

3) Maintain Skeleton once the items in the TODO list are complete and shift
it in to maintenance mode. Specifically, I don't want to see it advance
beyond being a good starting point for developers (myself included).

So what started this?

Recently several people asked me for framework recommendations (it feels like
I've tried them all and have developed a few opinions along the way). As of
May 2011 it's Flask, but explaining the bootstrapping process required to get
a decent app up and running is high enough that you can't easily expect a new
programmer to figure it out before their attention span begins to drift. At
the same time I was giving out recommendations and fielding questions
regarding Flask, I also had a flurry of applications that I needed to
write. Ugh.

Bootstrapping any framework is typically a tremendous pain in the ass (and it
shouldn't have to be, but still is). So instead of constantly wasting various
evenings or afternoons looking up the required implementation details to
stitch components that every application needs (e.g. a database, static
files, caching), I started Flask-Skeleton.

I'd been hanging on to a "skeleton" app in my ~/src/template_app directory
for long enough and that I finally decided to kick something out that was
usable and documented. See the TODO for details on what has been completed,
but it was initially released to support structured development with a common
set of design patterns already implemented (i.e. it shouldn't take hours of
research to figure out how to do a mechanical task or get some piece of
infrastructure integrated). All of the provided "scaffolding" resides
somewhere under 'skeleton/' so that your friendly `egrep -r` command can find
the desired string and cement your understanding of the layout (i.e. don't do
the django thing and attempt to be clever by stashing application logic in
random libraries).

With Flask being the awesomest awesomesauce around (at least as of May 2011),
hopefully this contribution from your neighborhood ghost in the machine will
make Flask development a bit easier to get started with and will have a
positive impact on your future application development.

If you find new tricks that are sensible, straightforward and will help other
developers setup their apps in a non-fail way, let me know[1] and I'll
incorporate your changes (including improved documentation, unit tests and
comments).  Cheers and good luck.

To begin making use of this skeleton, step through the instructions in
INSTALL.

[1] https://github.com/sean-/flask-skeleton

flask-skeleton's People

Contributors

sean- avatar sinwoobang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flask-skeleton's Issues

Large App based on flask-skeleton

Hi Sean

Please contact me regarding the adoption of flask-skeleton into a much larger app based on blueprints. I'm looking to pay for "framework services"

Thanks
Bruce

SQL Views: User IDs

Just a quick thought.

In terms of the aaa.user_info table, would it be better to create a view called aaa.user_info, which refers to the shadow.user table?

Not sure if that is what you are after, but it would stop a double up on queries, plus orphaned records and such.

If there is something I have missed, please let me know :)

Cheers,
Rhys

Flask-Skeleton Contains MemCache as a dependency.

I love the idea of this but I balked as soon as I saw the giant list of third party services and dependencies that it needed to be set up for a so called "minimal skeleton".

In my mind if the goal is a small, minimal skeleton there should only have to be a web-server,. a database server,, and your done. Please read the rest before you get angry.

I get the value that caching in memcache provides, and I think caching in a lot of cases makes a lot of sense, but since such a cache is not always part of your app (IT can also be part of infrastructure or replaced with other services) , it really it shouldn't be a requirement to use memcache as other technologies exist and not all projects/deployments/clouds are compatible with it, and so that violates the fundamental ideal that this is a minimal skeleton if memcache is a hard dependency.

Thus in my mind for something like this, the need to depend on memcache should be more of an add/on/option and not a hard dependency.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.