[Zope-DB] Hello!

Philip Kilner phil@xfr.co.uk
Fri, 25 Jul 2003 17:30:20 +0100


This is a cryptographically signed message in MIME format.

--------------ms050207010706030408060701
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi Cahrlie (& List)

Charlie Clark wrote:
> You call an ZSQL-method within Zope like this:
> r = context.selectBook()
> 
> in ZPT this looks like this <span tal:define="r here/selectBook"></span> 
> unless you wish to pass a parameter to the method in which case you have to 
> use Python syntax, ie.
> <span tal:define="r python: here.selectBook(ISBN=1)"></span>
> 

OK, well let's leave parameters unti later!

> Now, back to your form. You need something which processes the name/value 
> pairs which come from browser and the best thing to do this is a Python 
> script.
> 
> ### request = context.REQUEST
> context.insertBook(field_ISBN=request.field_ISBN, 
> field_Title=request.field_Title, field_Author=request.field_Author, 
> field_BookPrice=field_BookPrice)
> return context.thank_you(context, request)
> 
> Now, that's the minimalist version which doesn't do any checking and will 
> present SQL-errors to the user if something is in correct. It's also a 
> little difficult to read.
> 

OK, well, my first question is about the "hashes" before "request = 
context.REQUEST" - surely I need to define my request (see other mail to 
Jim)?

My next query would be what I make the "action" of my form? We started 
off at "insertBook", which was my ZSQL method and which I now know is 
the wrong thing to point it at. Would I be right in thinking that the 
"action" should be a ZPT which calls the script and then the ZSQL method?

> I generally loop over the REQUEST.form assigning values to a dictionary 
> which gets passed to the ZSQL-Method after things have been checked.
> 
> book_dict = {}
> for item, value in request.form.items():
> 	book_dict[item] = value
> 
> context.insertBook(book_dict)
> return context.thank_you(context, request)
> 

This looks like script which would be called by a PT and which in turn 
calls the ZSQL. Do I have that right?

> Hope that helps.
> 

Well, I feel as though I am getting there in microsocopic increments - I 
appreciate your help here, because I'm feeling deeply stupid. There's 
something about the "big picture" I'm just not "getting"!

-- 

Regards,

PhilK

Email: phil@xfr.co.uk / Voicemail & Facsimile: 07092 070518

"the symbols of the divine show up in our world initially at the trash 
stratum." Philip K Dick


--------------ms050207010706030408060701
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

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
AwIHMA0GCCqGSIb3DQMCAgEoMIGrBgkrBgEEAYI3EAQxgZ0wgZowgZIxCzAJBgNVBAYTAlpB
MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEPMA0GA1UEChMG
VGhhd3RlMR0wGwYDVQQLExRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEoMCYGA1UEAxMfUGVyc29u
YWwgRnJlZW1haWwgUlNBIDIwMDAuOC4zMAIDCihRMIGtBgsqhkiG9w0BCRACCzGBnaCBmjCB
kjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBU
b3duMQ8wDQYDVQQKEwZUaGF3dGUxHTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgw
JgYDVQQDEx9QZXJzb25hbCBGcmVlbWFpbCBSU0EgMjAwMC44LjMwAgMKKFEwDQYJKoZIhvcN
AQEBBQAEggEAywyCMs+fPQEc1alW/Qne2YwXXOvq+ZWpg6vSRnEPwiSpKpomiBca6OM5uPnY
4a73R+ql1Y8szLeVGWznGfJ6NdM9/hKV5M0QrXggAhUgzhrT5PIYufEM0e8mMJpMhW8ycSCq
nEpSGLI5yewRBt2GPj/hhDk3qCAdDrg0tBpw89farhfegsOCwvrFEx6v4GdCh8Lrnro7q/7x
LnJzx64oEFA+wGMSQtMePawYQrWUOcfKK5WyU/22QEb+IAul2DJmJXrNdw2DRGhjG4AliMKW
B/LAgBEfg/JHChxZaApVB2n9yf6lFx+Df4eRsaogOKzZmMLsB3Zdtj4ThNtwMVZ3wwAAAAAA
AA==
--------------ms050207010706030408060701--