학생 정보 관리 시스템 python 버 전
#!/usr/bin/env python
# @Time : 2018/3/30 17:37
# @Author : KiritoLiu
# @Contact : [email protected]
# @Site :
# @File : .py
# @Software: PyCharm
import pymysql
import datetime
import re
def CalAge(Date):
# ( ( ))
if Date == "NULL":
return " "
try:
Date = Date.split('-')
Birth = datetime.date(int(Date[0]), int(Date[1]), int(Date[2]))
Today = datetime.date.today()
if (Today.month > Birth.month):
NextYear = datetime.date(Today.year + 1, Birth.month, Birth.day)
elif (Today.month < Birth.month):
NextYear = datetime.date(Today.year, Today.month + (Birth.month - Today.month), Birth.day)
elif (Today.month == Birth.month):
if (Today.day > Birth.day):
NextYear = datetime.date(Today.year + 1, Birth.month, Birth.day)
elif (Today.day < Birth.day):
NextYear = datetime.date(Today.year, Birth.month, Today.day + (Birth.day - Today.day))
elif (Today.day == Birth.day):
NextYear = 0
Age = Today.year - Birth.year
if NextYear == 0: #
return "%d" % (Age)
else:
DaysLeft = NextYear - Today
return "%d" % (Age)
except:
return " "
def seesql():
#
db = pymysql.connect(host="localhost", user="root", password="123456", db="stu", charset="utf8")
#
cursor = db.cursor()
sql = "select s.sno,s.name,s.sex,s.cla,s.tel,s.birthday from stu s order by sno"
# sno( )
try:
m = cursor.execute(sql)
alist = cursor.fetchall()
print("{:>3}|\t{:<4}\t|{}|\t{:<3}\t\t| {:<8}|{}| {}".format(" ", " ", " ", " ", " ", " ", " "))
for vo in alist:
birth = vo[5]
bir = birth.strftime("%Y-%m-%d")
if bir == "1949-10-01":
bir = "NULL"
print("{:>5}|\t{:<4}\t| {} |\t{:<10}\t|{:<11}| {} | {}".format(vo[0], vo[1], vo[2], vo[3], vo[4], CalAge(bir), bir))
db.commit()
except Exception as err:
db.rollback()
print("SQL ! :", err)
db.close()
def seeone(a):
# ,
db = pymysql.connect(host="localhost", user="root", password="123456", db="stu", charset="utf8")
#
cursor = db.cursor()
stuid =int(a)
sql = "select s.sno,s.name,s.sex,s.cla,s.tel,s.birthday from stu s where s.sno = '%d'" % stuid
try:
m = cursor.execute(sql)
b = cursor.fetchone()
if b == None:
print(" , ")
quit()
else:
print("{:>3}|\t{:<4}\t|{}|\t{:<3}\t\t| {:<8}|{}| {}".format(" ", " ", " ", " ", " ", " ", " "))
birth = b[5]
bir = birth.strftime("%Y-%m-%d")
if bir == "1949-10-01":
bir = "NULL"
print("{:>5}|\t{:<4}\t| {} |\t{:<10}\t|{:<11}| {:<2} | {}".format(b[0], b[1], b[2], b[3], b[4], CalAge(bir), bir))
db.commit()
except Exception as err:
db.rollback()
print("SQL ! :", err)
db.close()
def addmql():
#
db = pymysql.connect(host="localhost", user="root", password="123456", db="stu", charset="utf8")
#
cursor = db.cursor()
sql = "select s.sno from stu s"
cursor.execute(sql)
alist = cursor.fetchall() #
blist = () #
print(" , :")
for i in alist:
blist += i #
print(i[0], end=" ") #
print()
sno = int(input(" :
"))
if sno in blist: # ,
print(" ! !")
quit()
sname = input(" :
")
sex = input(" ( or ):
")
if sex == " " or sex == " ":
sex = sex
else:
sex = " "
print(" , ")
cla = input(" ( :Python01):
")
tel = input(" :
")
if tel == re.search(r"(1[3456789]\d{9})", tel):
tel = tel
print(" , ")
else:
tel = ""
sbir = input(" ( :2001-1-1):
")
if sbir == re.search(r"(\d{4}-\d{1,2}-\d{1,2})", sbir):
sbir = sbir
else:
sbir = "1949-10-01"
print(" , ")
sql = "Insert into stu(sno,name,sex,cla,tel,birthday) values('%d', '%s', '%s', '%s', '%s', '%s')"%(sno, sname, sex, cla, tel, sbir)
try:
m = cursor.execute(sql)
#
db.commit()
print(" :", m)
print(" :")
seeone(sno)
except Exception as err:
db.rollback()
print("SQL ! :", err)
db.close()
def updatasql():
#
db = pymysql.connect(host="localhost", user="root", password="123456", db="stu", charset="utf8")
#
cursor = db.cursor()
stuid = int(input(" :
")) # 100 , stuid
try:
seeone(stuid)
print("====== ======")
print("{0:2}{1:5}{2:5}{3:5}".format(" ", "1. ", "2. ", "3. "))
print("{0:2}{1:5}{2}".format(" ", "4. ", "5. "))
a = int(input(" ( ):
"))
if a == 1:
xm = input(" :
")
sql = "UPDATE stu s SET s.name = '%s' WHERE s.sno = '%d'" % (xm, stuid)
elif a == 2:
xb = input(" ( or ):
")
if xb == " " or xb == " ":
xb = xb
else:
xb = " "
print(" , ")
sql = "UPDATE stu s SET s.sex = '%s' WHERE s.sno = '%d'" % (xb, stuid)
elif a == 3:
bj = input(" :
")
sql = "UPDATE stu s SET s.cla = '%s' WHERE s.sno = '%d'" % (bj, stuid)
elif a == 4:
dh = input(" :
")
sql = "UPDATE stu s SET s.tel = '%s' WHERE s.sno = '%d'" % (dh, stuid)
if dh == re.search(r"(1[3456789]\d{9})", dh):
''' '''
dh = dh
else:
dh = ""
print(" , ")
elif a == 5:
birday = input(" ( :2000-1-1):")
if birday == re.search(r"(\d{4}-\d{1,2}-\d{1,2})", birday):
''' '''
birday = birday
else:
birday = "1949-10-01"
print(" , ")
sql = "UPDATE stu s SET s.birthday = '%s' WHERE s.sno = '%d'" % (birday, stuid)
else:
print(" , !") #
quit()
cursor.execute(sql)
db.commit()
print(" :")
seeone(stuid)
except Exception as err:
db.rollback()
print("SQL ! :", err)
db.close()
def delsql():
#
db = pymysql.connect(host="localhost", user="root", password="123456", db="stu", charset="utf8")
#
cursor = db.cursor()
stuid = int(input(" :
")) # 100 , stuid
try:
print("====== ======")
seeone(stuid)
a = input(" (y/n):
")
if a == 'y' or a == 'Y':
sql = "delete from stu where sno = '%d'"%(stuid)
cursor.execute(sql)
else:
print(" , ")
quit()
db.commit()
print(" ")
except Exception as err:
db.rollback()
print("SQL ! :", err)
db.close()
def mainstu():
while True:
#
print("=" * 12, " ", "=" * 15)
print("{0:2}{1:13}{2:15}".format(" ", "1. ", "2. "))
print("{0:2}{1:13}{2:15}".format(" ", "3. ", "4. "))
print("{0:2}{1:13}".format(" ", "5. "))
print("=" * 45)
key = int(input(" :
"))
#
if key == 1:
print("=" * 12, " ", "=" * 15)
seesql()
input(" ")
elif key == 2:
print("=" * 12, " ", "=" * 15)
addmql()
input(" ")
elif key == 3:
print("=" * 12, " ", "=" * 15)
seesql()
updatasql()
input(" ")
elif key == 4:
print("=" * 12, " ", "=" * 15)
seesql()
delsql()
input(" ")
elif key == 5:
print("=" * 12, " ", "=" * 12)
quit()
else:
print("=" * 12, " , ", "=" * 12)
mainstu()
세트 데이터베이스 파일,데이터 포함
-- MySQL dump 10.13 Distrib 5.7.12, for Win64 (x86_64)
--
-- Host: localhost Database: stu
-- ------------------------------------------------------
-- Server version 5.7.17-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `stu`
--
DROP TABLE IF EXISTS `stu`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `stu` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`sno` int(3) NOT NULL,
`name` varchar(20) NOT NULL,
`sex` varchar(1) NOT NULL,
`cla` varchar(10) NOT NULL,
`tel` varchar(11) DEFAULT NULL,
`birthday` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stu_no_UNIQUE` (`sno`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `stu`
--
LOCK TABLES `stu` WRITE;
/*!40000 ALTER TABLE `stu` DISABLE KEYS */;
INSERT INTO `stu` VALUES (1,1,' ',' ','Python01','12345678910','1999-01-01 00:00:00'),(2,2,' ',' ','Python01','18866668888','1996-12-06 00:00:00'),(3,3,' ',' ','Python02','12345665410','1996-11-27 00:00:00'),(4,4,' ',' ','Python02','12332233210','1997-10-24 00:00:00'),(5,5,'qq01',' ','Python03','13322223322','1990-01-31 00:00:00'),(6,6,'qq02',' ','Python03','12288886666','1992-02-20 00:00:00'),(7,7,'qq03',' ','Python03','13579264801','2000-10-30 00:00:00'),(8,8,'uu01',' ','Python01','18898084886','1998-08-08 00:00:00'),(9,9,'uu02',' ','Python02','12022000022','1994-04-01 00:00:00'),(10,10,'aa',' ','Python02','18899998888','2004-04-04 00:00:00'),(11,11,'bb',' ','Python03','19264664234','1995-05-15 00:00:00'),(25,12,'uu10',' ','Python04','17788992332','1996-12-06 00:00:00'),(28,13,'uu10',' ','Python04','13571854999','1996-12-06 00:00:00');
/*!40000 ALTER TABLE `stu` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Dumping events for database 'stu'
--
--
-- Dumping routines for database 'stu'
--
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2018-03-31 15:10:58
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.