Red de conocimiento informático - Material del sitio web - Cómo escribir un marco de red en Python

Cómo escribir un marco de red en Python

PASO.1

Primero debemos elegir en qué protocolo escribir dicho marco. Podemos elegir entre protocolo CGI o interfaz WSGI. Si usamos CGI, en realidad solo necesitamos escribir un programa Python de acuerdo con la especificación CGI, y luego, cada vez que el servidor recibe una solicitud, bifurcamos un programa para ejecutar la solicitud y devolver el comentario/$','func_comment'),

('^/environ/$', 'get_environ'),

('^/post/$', 'post_test')] #urls proporcionadas para personas de desarrollo de aplicaciones para crear enlaces.

def getPage(self):

ruta = self.environ['PATH_INFO']

para patrón en self.urls:

m = re.match(pattern[0], path)#Escriba el elemento 0 del elemento URL que coincida con la ruta. Si coincide, devuelva el nombre de la función

si m:

. function = getattr(self, patrón[1])#el método getattr obtiene la función

return function()

return '404 not found'#No coincidió con nada

Una vez que lo hayas escrito, simplemente agrega un metaancestro a la lista de URL cada vez que agregas una página.

PASO.4 Obtener la plantilla

Dado que estás escribiendo una aplicación web, la plantilla debe existir. Aquí proporciono un método getTemplate para lograr esto. Pero sólo proporciono sustitución de variables. def getTemplate(self, tem_name, rep=0):

#Esta función devuelve el contenido, tem_name es el nombre del archivo

#El parámetro rep es un diccionario, el valor predeterminado es 0

f = open('template/' tem_name)

html = f.read()

html = f.read()

if( rep!=0):

for to_replace in rep:

strinfo = re.compile('\{\s*' str(to_replace) '\s* \}')

html = strinfo.sub(rep[to_replace], html)

devolver html

PASO.5 procesar datos POST

Para obtener los datos POST, tenemos que procesarlos a través del entorno ['wsgi.input']. En realidad, es la entrada estándar del sistema. environ['wsgi.input'] = sys.stdin

Una vez que sabes esto, es muy sencillo de escribir.

def getPost(self):

if(self.environ['REQUEST_METHOD'] == 'POST'):

prueba:

request_body_size = int( self.environ.get(' CONTENT_LENGTH', 0))#Lea el valor de content_length

excepto:

request_body_size = 0

request_body = self.environ ['wsgi.input'].read( request_body_size) #request_body

post_data = parse_qs(request_body)#parse_qs es un método proporcionado por cgi para ayudarnos a procesar solicitudes

return post_data< / p>

Enlace a la base de datos de importación MySQLdb

clase Modelo(objeto):

def __init__(self):

self.host = 'localhost '

self.port = 3306

self.host = 'localhost'

self.port = 'localhost'

self. host = 'localhost'

//p>

post_data = parse_qs(request_body)port = 3306

usuario = 'admin'

self.passwd = 'admin'

self.db = 'xieyi'

def build_connect(self):

self.conn = MySQLdb. conectar (

host = self.host,

puerto = self.port,

usuario = self.usuario,

contraseña = self .passwd,

db = self.db

)

def exec_ins( self, ins):

cur = self. conn .cursor()

num = cur.execute(ins)

info = {}

if(numgt;0):

info = cur.execute(ins)

if(numgt;0):

if(numgt;0):

info = cur.execute (ins)