Sección trigésimo cuarto características route add regulares y funciones añadidas atención

Importación Re
 importación pymysql 

URL_DICT = dict () 

'' ' 
a una ruta regular para añadir una razón: Cuando el desarrollo real, URL haría a menudo con una gran cantidad de parámetros, por ejemplo: /add/0000007.html, en donde 
000007 (medios de código: lata para extraer el registro de base de datos correspondiente) es el parámetro, 
si esta vez no es regular, entonces debemos escribir N veces @Route, añadir la función que corresponde al diccionario, el diccionario de pares de valores clave con N, un desperdicio de espacio, 
Si regular, entonces sólo es necesario escribir uno a @Route completa URL múltiple, tales como /add/00007.html,add/000036.html corresponden a la misma función, cuando los pares de valores clave del diccionario 
serán mucho menos 
'' ' 
DEF ruta (URL):
     DEF set_func (FUNC): 
        URL_DICT [URL] = FUNC
         DEF call_func (): 
            FUNC () 
        de retorno call_func
     regreso set_func 

@Route (R & lt ' /center.html' )
 DEF center_p (SET):
     Pass 

@Route (R & lt ' /add/(\d+)\.html ' )
 DEF add_focus (RET):
     # Get ticker 
    . Stock_code ret.group = (1 )
     # determina si la acción código 
    Conn = pymysql.connect ( ' localhost ' , ' la raíz ' , '' , ' python_test ' ) 
    Cursor = conn.cursor () 
    SQL = " SELECT * DONDE información del código =% S "
    cursor.execute (SQL, (stock_code,)) 
    SI  no cursor.fetchone (): 
        cursor.close () 
        conn.Close () 
        de retorno  ' no se ejecuta la acción, somos empresas de nueva creación, agradar a los hombres populares ' 
    la cosa :
         # juez si el código de valores que ya está preocupado por 
        SQL = ' SELECT * enfoque del DONDE info_id =% S ' 
        cursor.execute (SQL, (stock_code,)) 
        iF cursor.fetchone (): 
            cursor.close () 
            conn.Close () 
            de retorno  ' ha sido una preocupación, no repita en cuestión ' 
        la cosa :
             # Agregar preocupación 
            SQL = 'Enfoque INSERT INTO (info_id) Selecciona de código ID =% s DONDE información ' 
            del cursor.execute (SQL, (stock_code,)) 
            conn.commit () 
            cursor.close () 
            conn.Close () 
    de retorno  ' de Agregar (% S) OK .... ' % stock_code 

@Route (R & lt ' index.html ' )
 DEF index_p (RET):
     Pass 

DEF aplicación archivo (el env, start_response):
     ' '' del env es un diccionario vacío, start_response un servidor web en un método de referencia , el cuerpo de retorno de la función '' ' 
    del start_response ( ' 200 es el bien '[( 'Content-Type ', ' Text / html; charset = UTF-8 ' )]) 
    nombre_archivo = env [ ' PATH INFO ' ] 

    tratar :
         # retorno URL_DICT [nombre del archivo] () 
        para la url, func en URL_DICT.items ():
             ''' 
            {r "/index.html":index, 
            r" /center.html ": centro, 
            r" / añadir / \ d + \ html ":. add_focus 
            } 
            ''' 
            ret = re.match (url, nombre_de_fichero)
             si ret:
                 retorno func (RET)
     exceptoAS RET Excepción:
         retorno  ' una anormalidad S% ' % STR (RET)

 

Supongo que te gusta

Origin www.cnblogs.com/kogmaw/p/12602582.html
Recomendado
Clasificación