新人小白第一次發帖,有寫的不好的地方請見諒

事情是這樣子的:
1. 我想實作的功能:
學生輸入學號,訪問資料庫,如果能在資料庫中匹配到該學號,回傳“歡迎進入系統”;否則,回傳"輸入有誤"。
2. 我做了哪些作業:
(1)我在my sql中建了student表,定義了s_no,s_name等屬性
(2)我使用pymysql連接了python代碼和資料庫,連接成功
(3)在pycharm中,使用input輸入s_no"1001"(這是mysql里定義的正確學號)
3. 出現的問題:
我輸入了資料庫中定義的s_no(也就是正確的s_no),系統回傳的卻是”輸入有誤“?請問是什么原因呢?
以下是代碼:
import pymysql
DBHOST="localhost"
DBUSER="root"
DBPASS="123456"
DBNAME="book_manage_system"
db=pymysql.connect(DBHOST,DBUSER,DBPASS,DBNAME)
cursor=db.cursor()
class Identity(object):
#用類方法定義學生驗證身份方法
@classmethod
def StudentIdentity(cls):
username2 = input("請輸入學號:")
#呼叫資料庫里的“s_no”
sql = "select s_no from student"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
#判斷用戶輸入的學號是否正確?
for i in result:
if i==username2:
print("您好,歡迎進入圖書管理系統")
print("您的學號不正確,重新輸入")
cls.StudentIdentity()
#實體化物件
xiaoming=Identity()
xiaoming.StudentIdentity()
print("xiaoming")
下面是運行結果:請輸入學號:1001
您的學號不正確,重新輸入
uj5u.com熱心網友回復:
先不談邏輯, 按你目前的寫法, 改一下
#判斷用戶輸入的學號是否正確?
for i in result:
if i==username2:
print("您好,歡迎進入圖書管理系統")
改成
#判斷用戶輸入的學號是否正確?
for rec in result:
if rec[0]==username2:
print("您好,歡迎進入圖書管理系統")
如果資料庫里有 1001 的學號
那應該就可以看到 您好,歡迎進入圖書管理系統 的提示。
按你的代碼邏輯, 看完上面的提示后, 緊接著就會有 您的學號不正確,重新輸入 的提示。
uj5u.com熱心網友回復:
感謝樓上大神的回復,但輸入1001后還是顯示輸入有誤
uj5u.com熱心網友回復:
以下代碼,我跑過了,是可以的。你試試(https://blog.csdn.net/weixin_42261305/article/details/105488253)import pandas as pd
import pymssql
sqlconnect = pymssql.connect(DBHOST,DBUSER,DBPASS,DBNAME) #服務器名,賬戶,密碼,資料庫名
if sqlconnect:
print("連接成功!")
class Identity(object):
#用類方法定義學生驗證身份方法
@classmethod
def StudentIdentity(cls):
username2 = input("請輸入學號:")
#呼叫資料庫里的“s_no”
sql = '''
select s_no from student
'''
result=pd.read_sql(sql,sqlconnect)
#判斷用戶輸入的學號是否正確?
if username2 in result.values:
print("您好,歡迎進入圖書管理系統")
else:
print("您的學號不正確,重新輸入")
#實體化物件
xiaoming=Identity()
xiaoming.StudentIdentity()
print("xiaoming")
sqlconnect.close()
uj5u.com熱心網友回復:
還是查詢失敗
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55722.html
