-
-
Save johnschimmel/6329176 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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')) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment