I have been playing about with django a fair bit over the last week. After written a small app with django I wanted to import some data from an existing MSSQL database. To get the data into the django model I created a seperate python script to perform the import. Below is a script to import data from a table compaines in a mssql data to a django model called Company. To connect to the mssql server I used the pymssql library.
#!/usr/bin/env python
import sys,os
os.environ['DJANGO_SETTINGS_MODULE'] ='settings'
# import the modules needed to start the import
import pymssql
from datetime import *
import unicodedata
from django.core.management import setup_environ
import settings
setup_environ(settings)
#import the django models
from apps.clients.models import *
def importCompanies(conn):
cur = conn.cursor()
cur.execute("""SELECT
liCompanyPk,
szCompanyName
FROM companies""")
row = cur.fetchone()
while row:
company = Company()
company.pk = row[0]
company.Name = row[1]
company.save()
row = cur.fetchone()
if len(sys.argv) != 5:
print 'data_import.py [server] [username] [password] [database]'
else:
print 'host=%s, user=%s, password=%s, database=%s' % (sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])
conn = pymssql.connect(host=sys.argv[1], user=sys.argv[2], password=sys.argv[3], database=sys.argv[4])
importCompanies(conn)
conn.close()
After this I started to play around with pymssql I wanted a quick way to execute simple sql queries, not knowing of an linux alternative to the mysql console client I write another simple script to provide this basic functionality.
#!/usr/bin/env python
import sys,os
import _mssql
if len(sys.argv) != 5:
print 'data_import.py [server] [username] [password] [database]'
else:
print 'host=%s, user=%s, password=%s, database=%s' % (sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4])
conn = _mssql.connect(server=sys.argv[1], user=sys.argv[2], password=sys.argv[3], database=sys.argv[4])
print '>',
cmd = raw_input()
while cmd != 'exit':
if cmd != '':
print cmd
try:
conn.execute_query(cmd)
for row in conn:
for i in range(0,( len(row) / 2 )):
print row[i],'|',
print ''
except _mssql.MssqlDatabaseException,e:
print e
print '>',
cmd = raw_input();
conn.close()
You can download mssql_client.py here
So after only using for python for a couple of weeks It’s definitely powerful and fun to code with. Now to try out for all of the libraries that provide bindings such as pysvn or pyldap.
realy bad that fedora not have this mobile Brodband in fedora 11 frome the start