2017-10-18 2 views
-2

나는 파이썬에서 로그인 시스템을 만들고 SQLite3 데이터베이스를 사용하고 있습니다. 계정을 만들 때 사용자가 입력하는 사용자 이름과 암호를 포함하는 사용자라는 테이블이 있습니다. 사용자 이름이 기본 키입니다. 다른 이름을 선택하라는 메시지를 표시 할 수 있도록 사용자 이름이 이미 테이블에 있는지 어떻게 확인할 수 있습니까? 감사.SQLite 테이블에 기본 키가 있는지 확인할 수 있습니까? [파이썬]

+0

추가 정보 pls. 같은 정보 : 어떤 커넥터를 사용하고 있습니까? ORM을 사용하고 계십니까? 아니면 Custom-SQL에서 하시겠습니까? –

+0

@rossc 안드로이드에서 메타 데이터를 반복하면 많이 알려줄 것입니다. 파이썬에서 똑같은 코드를 검색 할 수도 있습니다 – Grendel

답변

1
import sqlite3 
con=sqlite3.connect('your_database.db') 
cur=con.cursor() 

#----------*****----------# 
while True: 
     user_nm=input('Username: ') 
     if user_nm and user_nm.strip(): 
      user_nm=(user_nm.strip(),) 
      query='select exists(select 1 from users where username=? collate nocase) limit 1' 
      # 'query' RETURNS 1 IF USERNAME EXISTS OR 0 IF NOT, AS INTEGER(MAYBE). 'collate nocase'= CASE INSENSITIVE, IT'S OPTIONAL 
      check=cur.execute(query,user_nm) 
      if check.fetchone()[0]==0: 
       print('Username avalaible') 
       break 
      else: 
       try_again=input('Username is not available, try again (any key)/stop (s): ').lower() 
       if try_again=='s': 
        break 
     else: 
      print('Input something')