File: module-MySql.html

package info (click to toggle)
cherrypy 0.10-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 10,324 kB
  • ctags: 1,759
  • sloc: python: 14,411; sh: 6,915; perl: 2,472; makefile: 76
file content (141 lines) | stat: -rw-r--r-- 5,021 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>1.6 MySql -- Simple MySQLdb wrapper to access a MySql database.</title>
<META NAME="description" CONTENT="1.6 MySql -- Simple MySQLdb wrapper to access a MySql database.">
<META NAME="keywords" CONTENT="lib">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="STYLESHEET" href="lib.css" type='text/css'>
<link rel="first" href="lib.html">
<link rel="contents" href="contents.html" title="Contents">

<LINK REL="next" href="module-MaskTools.html">
<LINK REL="previous" href="module-Form.html">
<LINK REL="up" HREF="node3.html">
<LINK REL="next" href="module-MaskTools.html">
<meta name='aesop' content='information'>
</head>
<body>
<DIV CLASS="navigation">
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A HREF="node22.html"><img src="../icons/previous.gif"
  border="0" height="32"
  alt="Previous Page" width="32"></A></td>
<td><A HREF="node3.html"><img src="../icons/up.gif"
  border="0" height="32"
  alt="Up One Level" width="32"></A></td>
<td><A href="module-MaskTools.html"><img src="../icons/next.gif"
  border="0" height="32"
  alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy Standard Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
  border="0" height="32"
  alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
  border="0" height="32"
  alt="" width="32"></td>
<td><img src="../icons/blank.gif"
  border="0" height="32"
  alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" HREF="node22.html">1.5.4 Putting it together</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="node3.html">1. Module list</A>
<b class="navlabel">Next:</b> <a class="sectref" href="module-MaskTools.html">1.7 MaskTools  </A>
<br><hr>
</DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION003600000000000000000">
1.6 <tt class="module">MySql</tt> -- Simple MySQLdb wrapper to access a MySql database.</A>
</H1>

<P>
This module is a very simple module. The source code is the following:

<P>
<div class="verbatim"><pre>
import MySQLdb

################
CherryClass MySql abstract:
################
function:
    def openConnection(self, host, user, passwd, db):
        self.connection=MySQLdb.connect(host, user, passwd, db)
    def query(self, query):
        c=self.connection.cursor()
        c.execute(query)
        res=c.fetchall()
        c.close()
        return res
</pre></div>

<P>
All it does is it provides a CherryClass wrapper to the Python MySQLdb module

<P>
All you have to do to use it is declare a CherryClass that inherits from MySql, call the <var>openConnection</var>
method in the <var>__init__</var> method, and use <var>query</var> to execute a query and get the result.

<P>
The connection will be automatically opened when the server gets started (when your CherryClass gets instantiated), and
it will remain open until the server dies.

<P>
The following code is an example on how to use the module:

<P>
<div class="verbatim"><pre>
use MySql
CherryClass MyDb(MySql):
function:
    def __init__(self):
        self.openConnection('host', 'user', 'password', 'database')

CherryClass Root:
mask:
    def index(self):
        &lt;html&gt;&lt;body&gt;
            Hello, there are currently &lt;py-eval="myDb.query('select count(*) from user')[0][0]"&gt; users in the database
        &lt;/body&gt;&lt;/html&gt;
</pre></div>

<DIV CLASS="navigation">
<p><hr>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><A HREF="node22.html"><img src="../icons/previous.gif"
  border="0" height="32"
  alt="Previous Page" width="32"></A></td>
<td><A HREF="node3.html"><img src="../icons/up.gif"
  border="0" height="32"
  alt="Up One Level" width="32"></A></td>
<td><A href="module-MaskTools.html"><img src="../icons/next.gif"
  border="0" height="32"
  alt="Next Page" width="32"></A></td>
<td align="center" width="100%">CherryPy Standard Library Reference</td>
<td><A href="contents.html"><img src="../icons/contents.gif"
  border="0" height="32"
  alt="Contents" width="32"></A></td>
<td><img src="../icons/blank.gif"
  border="0" height="32"
  alt="" width="32"></td>
<td><img src="../icons/blank.gif"
  border="0" height="32"
  alt="" width="32"></td>
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" HREF="node22.html">1.5.4 Putting it together</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="node3.html">1. Module list</A>
<b class="navlabel">Next:</b> <a class="sectref" href="module-MaskTools.html">1.7 MaskTools  </A>
<hr>
<span class="release-info">Release 0.10, documentation updated on 19 March 2004.</span>
</DIV>
<!--End of Navigation Panel-->
<ADDRESS>
See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.
</ADDRESS>
</BODY>
</HTML>