Skip to content

Instantly share code, notes, and snippets.

@rodrigodev
Forked from codesplicer/app.py
Created October 12, 2018 13:54
Show Gist options
  • Save rodrigodev/d20f624a8dd9f377e62f835dc11ffcfd to your computer and use it in GitHub Desktop.
Save rodrigodev/d20f624a8dd9f377e62f835dc11ffcfd to your computer and use it in GitHub Desktop.

Revisions

  1. @codesplicer codesplicer created this gist Nov 9, 2012.
    53 changes: 53 additions & 0 deletions app.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,53 @@
    # Flask related imports
    from flask import Flask, render_template, jsonify, abort, request, make_response, session, redirect, url_for

    # Flask extensions
    from flask.ext.mongoengine import MongoEngine
    from flask_debugtoolbar import DebugToolbarExtension

    # Flask blueprints
    import companies
    from companies.views import companies


    # Other imports
    import socket
    import json
    import datetime
    import os
    from urllib import splitquery, urlencode, quote_plus
    from json import dumps as jsondumps
    from bson import objectid



    # ==============================================================================
    #
    # SETUP APP
    #
    # ==============================================================================
    app = Flask(__name__)
    app.config['UPLOAD_FOLDER'] = settings.UPLOAD_FOLDER
    app.config['MONGODB_DB'] = settings.DB_NAME
    app.config['MONGODB_HOST'] = settings.DB_HOST

    db = MongoEngine(app)


    # Register blueprints
    def register_blueprints(app):
    # Prevents circular imports
    app.register_blueprint(companies)

    register_blueprints(app)

    # Additional route endpoints
    @app.route("/")
    def home():
    return render_template('home.html')


    if __name__ == "__main__":
    app.debug = True
    toolbar = DebugToolbarExtension(app)
    app.run()
    16 changes: 16 additions & 0 deletions companies-views.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,16 @@
    from flask import Blueprint, request, redirect, render_template, url_for
    from flask.views import MethodView
    from backend.models import Company, Address

    companies = Blueprint('companies', __name__, template_folder='templates')


    class ListView(MethodView):

    def get(self, search_category):
    company_list = Company.objects.all(category=search_category)
    return render_template('list.html', companies=company_list)


    # Register endpoints
    companies.add_url_rule('/company/list/', view_func=ListView.as_view('list'))
    20 changes: 20 additions & 0 deletions models.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    import datetime
    from flask import url_for
    from app import db

    class Company(db.Document):
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    name = db.StringField(max_length=255, required=True)
    address = db.EmbeddedDocumentField('Address')

    def get_absolute_url(self):
    return url_for('company', kwargs={'slug': self.slug})

    def __unicode__(self):
    return self.name


    class Address(db.EmbeddedDocument):
    street = db.StringField(verbose_name='Street', required=True)
    city = db.StringField(verbose_name='City', required=True)
    postcode = db.StringField(verbose_name = 'Post Code', max_length=8, required=True)