Python, ASP - Namespace (again)

Nikolai Kirsebom Nikolai.Kirsebom at p98.f112.n480.z2.fidonet.org
Wed Jun 30 00:15:42 CEST 1999


From: "Nikolai Kirsebom" <nikolai at micon.no>

Trying again - since I'm rather stuck, and I would like to stick to Python.


I'm trying to use Python as scripting language on the web-server, however -
have problems to see how the namespace scope is handled.

FILE - GenDb.py
=============
class GenDb:
   def __init__(self):
      self.ConnStr = ""

   def SetDbAndTable(self, db, table):
      self.Db = db
      self.Table = table
      self.ConnStr = "Driver={Microsoft Access Driver (*.mdb)};
DBQ=f:\\Databases\\%s" % db

   def Attr(self, attrName):
      if attrName == "abc":
         return(self.ConnStr)
      else:
         return("-non-")

FILE - KSdebatt.py
===============
from GenDb import *

class KSdebatt(GenDb):
   def __init__(self):
      self.SetDbAndTable("KSdebatt.mdb", "BillMrk")

FILE - SCRIPT1.ASP
=================
<%@ LANGUAGE = Python %>
<%
import sys
sys.path.append("f:\\PythonScripts")
from KSdebatt import *
o=KSdebatt()
%>
<HTML>
<INPUT TYPE="text" NAME="abc" VALUE="<%= o.Attr("abc") %>" SIZE=20>
</HTML>


when I run the statements in the script1.asp file in an interactive window,
I can create the KSdebatt object, however when I run the script on the
server - I  get the following message:

Python ActiveX Scripting Engine error '80020009'
Traceback (innermost last): File "<Script Block >", line 4, in ?
o=KSdebatt() NameError: KSdebatt
/ksdebatt/pages/Script1.asp, line 6
o=KSdebatt()

If it is possible I would like to 'hide' the object (o) inside the KSdebatt
module - that is to have the instanciation inside the module itself - but
still be able to access it from the ASP-code in the script (o.Attr....).  Is
this possible ?


I'm running on NT 4.0 SP 3 and python 1.5.2b2


Thanks for any help

Nikolai Kirsebom







More information about the Python-list mailing list