2014-04-13 2 views
-1

새롭고 또한 WSGI 용 Google 검색에서 작동하지 않기 때문에 .. 아래의 mysql 쿼리를 배치하는 방법을 알아야합니다. WSGI 스크립트의 함수.WSGI 스크립트 mysql 쿼리를 '함수'에 추가하는 방법

여기는 현재 비 기능 버전입니다.

import MySQLdb 
conn = MySQLdb.connect (host = "localhost", 
         user = "a", 
         passwd = "", 
         db = "a") 
cursor = conn.cursor() 
cursor.execute ("select * from `01` where id in (1) limit 1") 
rows = cursor.fetchall() 
cursor.close() 
conn.close() 

aaa = rows[0][1] 

def application(environ, start_response): 
    start_response('200 OK', [('content-type', 'text/html')]) 
    yield aaa 

단순히 내가 .. 내가 WSGI에 PHP 함수하지만 많은 경험과

답변

0

설치 코드가 있어야 작동하는 방법을 알고 다음 함수에 그 MySQL의 쿼리를 배치하는 함수에서 호출하는 방법을 알려주세요

import MySQLdb 
conn = MySQLdb.connect(
    host = "localhost", 
    db  = "a" 
    user = "a", 
    passwd = "", 
) 

쿼리 특정 코드가 def 내부 이동 및 이름을 가져옵니다 :

def query(): 
    cursor = conn.cursor() 

    cursor.execute("select * from `01` where id in (1) limit 1") 
    rows = cursor.fetchall() 
    cursor.close() 

    return rows 
0을 그 상단에 남아 있도록하지 각 쿼리에 대해 한 번 실행해야

정리 코드는 시작 코드처럼, 한 번 실행 -하지만 말 :

results = query() 
+0

연결의 생성은 전역 범위에있을 수 없습니다

conn.close() 

그리고 함수를 다음과 같이 호출 WSGI 응용 프로그램이 다중 스레드 WSGI 서버에 배포되는 경우 모듈의 이는 동시 요청이 동일한 연결의 사용에 대해 대결하기 때문입니다. –

+0

@GrahamDumpleton 그래서 현재 스레드 (캐시를 만들거나 캐시 된 버전 사용)에 대한 연결을 반환하는 메서드를 만듭니다. 그런 다음'query()'는 첫 번째 단계로'conn = current_connection()'또는 그와 비슷한 것을 할 수 있습니다. 그런 다음 나머지 메서드에 대해서만 사용할 수 있습니다. –

+0

위 예제를 사용하기 시작했지만 결과는 여전히 캐시됩니다. –