Skip to content

Instantly share code, notes, and snippets.

@ryansb
Created October 6, 2015 10:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryansb/9440a214184c5126ac21 to your computer and use it in GitHub Desktop.
Save ryansb/9440a214184c5126ac21 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from collections import namedtuple\n",
"User = namedtuple('User', [\"id\", \"name\", \"email\"])\n",
"someone = User(1, \"Some Body\", \"some@one.com\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import json, sqlalchemy\n",
"\n",
"connection_string = 'sqlite://'\n",
"db = sqlalchemy.create_engine(connection_string)\n",
"engine = db.connect()\n",
"meta = sqlalchemy.MetaData(engine)\n",
"\n",
"columns = (\n",
" sqlalchemy.Column('id', sqlalchemy.Integer),\n",
" sqlalchemy.Column('name', sqlalchemy.Text),\n",
" sqlalchemy.Column('email', sqlalchemy.Text),\n",
")\n",
"\n",
"sqlalchemy.Table(\"users\", meta, *columns)\n",
"meta.create_all()\n",
"\n",
"table = sqlalchemy.table(\"users\", *columns)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# add test data\n",
"statements = [\n",
" table.insert().values(user)\n",
" for user in (\n",
" User(1, \"Alice\", \"alice@test.com\"),\n",
" User(2, \"Bob\", \"bob@test.com\"),\n",
" (3, \"Chuck\", \"Chuck@test.com\"),\n",
" (4, \"Diane\", \"diane@test.com\"),\n",
" )\n",
"]\n",
"results = [engine.execute(stmt) for stmt in statements]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"alice = engine.execute(table.select().where(table.c.name == \"Alice\")).fetchone()\n",
"print(\"User: {}\".format(alice[1]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tuple_alice = User(*alice)\n",
"print(\"User: {}\".format(tuple_alice.name))\n",
"# User: Alice\n",
"print(alice)\n",
"# (1, 'Alice', 'alice@test.com')\n",
"print(tuple_alice)\n",
"# User(id=1, name='Alice', email='alice@test.com')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.0"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment