Metadata-Version: 2.1
Name: assembly
Version: 0.0.0
Summary: A mid stack Flask based framework that put structure in the file system. Features: Caching, Mailing, Storage, CSRF, recaptcha, Cors. Supports HTML and Markdown and more
Home-page: https://github.com/mardix/flask-assembly
Author: Mardix
Author-email: mcx2082@gmail.com
License: MIT
Keywords: flask,templates,views,classy,framework,mvc,blueprint
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
Requires-Dist: Flask (>=1.0.0)
Requires-Dist: Flask-Assets (==0.12)
Requires-Dist: cssmin (==0.2.0)
Requires-Dist: jsmin (==2.2.1)
Requires-Dist: flask-recaptcha (>=0.4.1)
Requires-Dist: flask-kvsession (==0.6.1)
Requires-Dist: flask-s3 (==0.3.1)
Requires-Dist: flask-mail (==0.9.0)
Requires-Dist: flask-caching (==1.0.0)
Requires-Dist: flask-cloudy (>=1.0.1)
Requires-Dist: flask-seasurf (==0.2.2)
Requires-Dist: flask-babel (==0.11.2)
Requires-Dist: flask-cors (>=3.0.8)
Requires-Dist: Active-Alchemy (>=1.0.0)
Requires-Dist: six (>=1.9.0)
Requires-Dist: passlib (<1.8.0,>=1.7.0)
Requires-Dist: bcrypt (==3.1.3)
Requires-Dist: python-slugify (==1.2.1)
Requires-Dist: humanize (==0.5.1)
Requires-Dist: ses-mailer (>=0.13.0)
Requires-Dist: markdown (==2.6.2)
Requires-Dist: inflection (==0.3.1)
Requires-Dist: pyyaml (>=4.2b1)
Requires-Dist: click (>=6.2)
Requires-Dist: sh (==1.11)
Requires-Dist: dicttoxml (==1.6.6)
Requires-Dist: arrow (==0.8.0)
Requires-Dist: blinker (==1.4)
Requires-Dist: itsdangerous (==0.24)
Requires-Dist: requests (>=2.13.0)

# Flask-Assembly

[

[Documentation](https://mardix.github.io/flask-assembly)

**Flask-Assembly** is A mid stack, batteries framework based on Flask. It adds structure 
to your Flask application, and group the endpoints by classes instead of just 
loose functions. 

Technically Flask-Assembly is my attempt of making a simple framework based on Flask Great Again!


## Decisions made for you + Features

- Smart routing: automatically generates routes based on the classes and methods in your views

- Class name as the base url, ie: class UserAccount will be accessed at '/user-account'

- Class methods (action) could be accessed: hello_world(self) becomes 'hello-world'

- Smart Rendering without adding any blocks in your templates

- Auto rendering by returning a dict of None


- Templates are mapped as the model in the class the $module/$class/$method.html

- Markdown ready: Along with  HTML, it can also properly parse Markdown

- Auto route can be edited with @route()

- Restful: GET, POST, PUT, DELETE

- REST API Ready

- bcrypt is chosen as the password hasher

- Session: Redis, AWS S3, Google Storage, SQLite, MySQL, PostgreSQL

- ORM: [Active-Alchemy](https://github.com/mardix/active-alchemy) (SQLALchemy wrapper)

- ReCaptcha: [Flask-Recaptcha](https://github.com/mardix/flask-recaptcha)

- Uses Arrow for dates 

- Active-Alchemy saves the datetime as arrow object, utc_now

- CSRF on all POST

- CloudStorage: Local, S3, Google Storage [Flask-Cloudy](https://github.com/mardix/flask-cloudy)

- Mailer (SES or SMTP)

- Caching

- Decorators, lots of decorators



## Quickstart

#### Install Flask-Assembly

To install Flask-Assembly, it is highly recommended to use a virtualenv, in this case I 
use virtualenvwrapper 

    mkvirtualenv my-flask-assembly-site

Install Flask-Assembly

    pip install flask-assembly

#### Initialize your application

Now Flask-Assembly has been installed, let's create our first application

```
    cd your-dir

    asmbl-admin setup
```


`asmbl-admin setup` setup the structure along with the necessary files to get started

 You will see a structure similar to this

    /your-dir
        |
        |__ .gitignore
        |
        |__ app.json
        |
        |__ requirements.txt
        |
        |__ assembly.py
        |
        |__ application/
            |
            |__ __init__.py
            |
            |__ config.py
            |
            |__ /models/
                |
                |__ __init__.py
                |
                |__ models.py
            |
            |__ /views/
                |
                |__ __init__.py
                |
                |__ main.py
            |
            |__ /templates/
                | 
                |__ /layouts/
                    | 
                    |__ base.jade
                |
                |__ /main/
                    |
                    |__ /Index/
                        |
                        |__ index.jade
            |
            |__ /static/
                |
                |__ assets.yml
                |
                |__ package.json
            |
            |__ /data/
                |
                |__ babel.cfg
                |
                |__ /uploads/
                |
                |__ /babel/
                |
                |__ /mail-templates/
            |
            |__ /lib/



#### Serve your first application

If everything is all set, all you need to do now is run your site:

    flask-assembly serve

It will start serving your application by default at `127.0.0.1:5000`

Go to http://127.0.0.1:5000/ 

---

I hope this wasn't too hard. Now Read The Docs at [http://mardix.github.io/flask-assembly/](http://mardix.github.io/Flask-Assembly/)
for more 

Thanks, 

Mardix :) 

--- 

## Read The Docs

To dive into the documentation, Read the docs @ [http://mardix.github.io/flask-assembly/](http://mardix.github.io/flask-assembly/)

---

License MIT

Copyright: 2019 - Forever Mardix



