Chapter 5 of the Django Book - Models
I thought about just
skipping this one as I don't anticipate needing a db for the schedule app, but
decided I might as well follow through, it'll probably come in handy soon
enough.
So step 1 I created
a sql database in azure to use, and now I need a sql engine for python.
I found https://pypi.python.org/pypi/django-pyodbc-azure/1.0.5
which told me to install pyodbc first, which was googleable enough, and
available for both 2.7 and 3.x. But the 2.7 version said it couldn't install bc
I don't have 2.7 in the registry…hmm.
After some hints from Stack Overflow, I checked the python version I
have for 2.7 and it's the 32 bit version, which won't be found by the 64 bit
installer. Ran the 32 bit installer and done. Then it said to use pip to
install itself, which I didn't have, but SO led me to this great page: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip…but
after running that, pip still wasn't recognised on the command line. Another
useful note on SO said it installed to python/scripts instead of just to
/python, so I had to add that to my path. And now I get 'failed to create
process'. Tried in admin mode, same error. Google was initially not forthcoming
about this error, but then turned up this: http://www.maphew.com/Python/python-fixit-snippets/
which suggested that it was unable to find python. Perhaps it is confused by my
python27 option? The location certainly hasn't changed since I installed it. I
uninstalled and reinstalled to be sure, but that didn't help.
Checking the Event
Viewer to see where it's trying to find python might help -nope, can't see any
relevant messages.
I went back and
installed Distribute, as it is mentioned in the same place as where I got pip.
No change.
I found this gui for
pip that lets you switch between active python installers - that might help,
because it could still be being caused by my dual 2 and 3 installation? https://sites.google.com/site/pydatalog/python/pip-for-windows
but it also failed. But it did point out that I have no pip.exe in c:\python27
- which is odd because I do have a Removepip.exe? Turns out pip.exe is in
c:\python27\scripts, but moving it just got me back to failed to create
process. Hmmmmmm.
So I went back to
the site, and noticed it had a downloadable zip. So I downloaded that, and ran
setup.py install, and it appears to have installed something? But not a full
package. In fact I can't even see a real pyodbc package...
But just to make
sure it isn't installed, let's try following the instructions on the
pyodbc-azure site. And nope, I get jango.core.exceptions.ImproperlyConfigured:
'sql_server.pyodbc' isn't an available database backend.
So, that was a
couple of unproductive hours, and I give up. I will instead attempt to follow
this tutorial (http://www.windowsazure.com/en-us/develop/python/tutorials/web-app-with-blob-storage/)
for connecting a python app to azure storage, which should be perfectly
adequate for anything. And to get
through the Django book I can just go ahead and use sqllite.
Getting started with
sqllite: http://sqlite.org/sqlite.html
Easy!
Quickly created and
connected to a database, created a model, turned it into tables, added data to
the tables, and started querying the data out of it
- All rows
- Filter: Field = x, field contains x (see Appendix C for field == x, or < x?)
- Get(): A single object instead of a list ( filter returns a list) uses same options as filter
- Order_by
- Slicing - works just like a python list!
- Use .update(x=1) instead of pub.name='a' to get more efficient sql translations (setting a field directly will cause all fields to be saved over)
- .delete() can be called on an object or a query set (result of .filter()) Django tries to save you from accidentally deleting everyhting by requiring the odd syntax x.objects.all().delete() to do that
No comments:
Post a Comment