学了数据库之后,我们可以用数据库来做一个用户管理的系统。实现注册,登陆,查看,删除用户等功能。
第一步:具体分成里两个部分,第一部分是连接数据库,,并且创建表,将表封装成一个类。
具体实现如下:
from sqlalchemy import create_engine,Column,Integer,SmallInteger,String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine=create_engine("mysql+pymysql://root:westos@192.168.122.191/pymysql",
encoding='utf8',
# echo=True
)
Session =sessionmaker(bind=engine)
session=Session()
Base=declarative_base()
class Users(Base):
__tablename__='Users'
id =Column(Integer,primary_key=True,autoincrement=True)
name=Column(String(20),nullable=False)
password=Column(String(20),nullable=False)
email=Column(String(30),unique=True)
def __repr__(self):
return self.name
if __name__ == '__main__':
Base.metadata.create_all(engine)
封装好了之后就可以写管理系统了。
具体实现如下:
import db
cookie={}
class UserManage(object):
def login(self,name,password):
#从数据库中获取用户名和密码。验证是否正确,正确则登陆成功,反之则失败。
obj=db.session.query(db.Users).filter_by(name=name).filter_by(password=password).first()
if obj:
print("%s登录成功"%name)
cookie['name']=name
else:
print("用户名或密码错误。")
def logout(self):
cookie.pop('name')
print("注销成功。")
def register(self,user,password):
#从数据库中获取信息,如果用户已3存在则提示用户存在,反之,则注册成功。
username = db.session.query(db.Users).filter_by(name=user).first()
if username:
print("用户已存在。")
else:
obj=db.Users(name=user,password=password)
db.session.add(obj)
db.session.commit()
print("%s用户注册成功。"%user)
def deltel(self,user):
#从数据库中获取对象信息。如果有,则删除。
obj=db.session.query(db.Users).filter_by(name=user).first()
if obj:
print(obj)
db.session.delete(obj)
db.session.commit()
print("%s用户删除成功。"%user)
else:
print("用户不存在。")
def is_exists(self):
obj=db.session.query(db.Users).all()
print(obj)
if __name__ == '__main__':
db.Base.metadata.create_all(db.engine)
user1=UserManage()
# 注册westos,
user1.register('westos','westos')
#注册westos1
user1.register('westos1','westos')
#验证登陆
user1.login('westos','westos')
# user1.deltel('westos')
#查询所有用户。
user1.is_exists()
下边就是我们程序运行的结果。
我们看下数据库的内容是一致的,这说明我们的系统就做好了。
标签:__,obj,name,python,数据库,之用,db,session,print
来源: https://blog.csdn.net/qq_41355482/article/details/96635861