Skip to content

Instantly share code, notes, and snippets.

@mrjoes
mrjoes / app.py
Last active March 22, 2021 23:15
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relationship, backref
import flask_admin as admin
from flask_admin.contrib import sqla
# Create application
app = Flask(__name__)
@mrjoes
mrjoes / test.py
Created September 12, 2016 19:40
def _pick_by_class_ref(self, cls_ref, comparision_type="exact"):
func = getattr(self, comparision_type)
try:
_refs = self.db["key"][cls_ref]
except KeyError:
return []
else:
_item = self.db["info"][_refs[0]]
_level = _item["level"]
if comparision_type != "better":
@mrjoes
mrjoes / demo.html
Created May 26, 2016 16:04
Flask-Admin with multiple virtual subdomains
<html>
<body>
Hello {{ subdomain }}!
<img src="{{ url_for('static', subdomain=subdomain, filename='avatar.jpeg', _external=True) }}"></img>
</body>
</html>
@mrjoes
mrjoes / demo.py
Last active September 9, 2015 14:17
import os.path as op
from flask import Flask
from flask.helpers import locked_cached_property
from jinja2 import FileSystemLoader
class BubbleApp(Flask):
def __init__(self):
<?xml version="1.0" encoding="utf-8"?>
<ISBoxerToolkitProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="41" VersionMinor="1" BuildDate="9/1/2015 12:32:02 AM">
<CharacterSet>
<ExecuteOnLoad>
<RoundRobin>false</RoundRobin>
</ExecuteOnLoad>
<Name>Diablo III</Name>
<Description>Generated by ISBoxer 41 Quick Setup Wizard - 2/1/2015</Description>
<DisableFPSIndicator>false</DisableFPSIndicator>
<DisableForceWindowed>false</DisableForceWindowed>
from urlparse import urlparse, urljoin
from flask import request, url_for, redirect
from myapp.app import app
def is_safe_url(target):
ref_url = urlparse(request.host_url)
test_url = urlparse(urljoin(request.host_url, target))
from flask import Flask
from mongoengine import connect
from flask.ext.admin import Admin
from flask.ext.admin.contrib.mongoengine import ModelView
from flask.ext.mongoengine import MongoEngine
class Config(object):
DEBUG = True
# Recursively check all combinations with +-
def check(step, acc, ops, digits):
if step >= len(digits):
if acc == 100:
row = ''
for pair in zip(digits, ops):
row += '%s %s ' % pair
print '%s%s' % (row, digits[-1])
@mrjoes
mrjoes / base.py
Created March 27, 2015 00:05
CSV export for Flask-Admin
class BaseModelView(ModelView):
list_template = 'admin/model_list.html'
export_columns = None
# Exporting
def _get_data_for_export(self):
view_args = self._get_list_extra_args()
# Map column index to column name
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.admin import Admin
from flask.ext.admin.contrib.sqla import ModelView
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
db = SQLAlchemy(app)