实现功能大概

将python和MySQL数据库交互进行 封装 ---》》utils.py

文件程序 ----》blog.py

# -*- coding: utf-8 -*-
# @Time    : 2019/08/30 15:33
# @Author  : Liu
# @File    : utils.pyimport pymysql
import hashlibclass dbHelper:def __init__(self, host, user, password, port, database):self.host = hostself.user = userself.password = passwordself.port = portself.database = databasedef connect(self):self.conn = pymysql.connect(host=self.host, user=self.user, password=self.password, port=self.port,database=self.database)self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)# 關閉def close(self):self.cursor.close()self.conn.close()# 封装增删改def __oper(self, sql, params):row = 0try:self.connect()row = self.cursor.execute(sql, params)self.conn.commit()self.close()except Exception as e:print(e)return rowdef insert(self, sql, params=[]):return self.__oper(sql, params)def delete(self, sql, params=[]):return self.__oper(sql, params)def update(self, sql, params=[]):return self.__oper(sql, params)def find_one(self, sql, params=[]):data = Nonetry:self.connect()self.cursor.execute(sql, params)data = self.cursor.fetchone()self.close()except Exception as e:print(e)return datadef find_all(self, sql, params=[]):# try:self.connect()self.cursor.execute(sql, params)datas = self.cursor.fetchall()self.close()# except Exception as e:#     print(e)return datasdef secret_sha256(self,password):sha256 = hashlib.sha256()sha256.update(password.encode('utf-8'))password = sha256.hexdigest()return password

blog.py

# -*- coding: utf-8 -*-
# @Time    : 2019/08/30 17:18
# @Author  : Liu
# @File    : blog.py
from utils import dbHelper
from datetime import date
from datetime import datetime# 创建数据库工具类对象
db = dbHelper(host='10.0.102.54', user='root', password='root', port=3306, database='blog')#登陆while True:choice = input('请选择:1.登陆 2.注册 3.发表博客 4.退出登陆 5.浏览文章 6. 查看全部用户文章 7.忘记密码 ')if choice == '1':username = input('用户名:')password = input('密码:')if username and password:# 数据库查询sql = 'select * from user where username=%s'data = db.find_one(sql, (username,))  # {'id':1,'username':'admin','password':'....',...}if data:# 此人注册过db_password = data.get('password')password = db.secret_sha256(password)if password == db_password:sql = 'update user set islogin=1 where id=%s'db.update(sql, (data.get('id'),))print('用户登录成功!')else:print('用户名或者密码有误!')else:print('输入的用户名有误!')else:print('输入不能为空')#注册elif choice == '2':# 注册username = input('用户名:')password = input('密码:')repassword = input('确认密码:')phone = input('手机号码:')email = input('邮箱:')# 查询if username:sql = 'select * from user where username=%s or phone=%s or email=%s'data = db.find_one(sql, params=(username, phone, email))# print('1')if data:print('此用户名或者手机号码或者邮箱已被占用!')else:# 注册if password and repassword:if password == repassword:# print('2')password = db.secret_sha256(password)sql = 'insert into user(username,password,phone,email,rdate) values(%s,%s,%s,%s,%s)'row = db.insert(sql, (username, password, phone, email, date.today()))if row:print('注册成功!')else:print('注册失败!')else:print('两次密码不一致!')else:print('密码不能为空~')else:print('用户名不能为空!')#发表博客elif choice == '3':# 发表文章username = input('用户名:')if username:# 数据库查询sql = 'select * from user where username=%s'data = db.find_one(sql, (username,))  # {'id':1,'username':'admin','password':'....',...}if data:islogin = data.get('islogin')if islogin:# 发表文章title = input('请输入文章标题:')content = input('输入内容:')# 构建sqlsql = 'insert into blog(title,content,pdate,uid) values(%s,%s,%s,%s)'row = db.insert(sql, (title, content, datetime.now(), data.get('id')))if row:print(username + '发表文章成功')else:print('文章发表失败!')else:print('此用户还没有登陆,请登陆....')else:print('用户名有误!')#退出登陆elif choice == '4':# 退出登陆username = input('用户名:')if username:# 数据库查询sql = 'select * from user where username=%s'data = db.find_one(sql, (username,))  # {'id':1,'username':'admin','password':'....',...}if data:sql = 'update user set islogin=0 where id=%s'row = db.update(sql, (data.get('id'),))if row:print(username + '成功退出!')breakelse:print('退出失败!')else:print('输入的用户名有误!')else:print('用户名不能为空!')#浏览自己的文章elif choice == '5':username = input('用户名:')if username:# 数据库查询sql = 'select * from user where username=%s'data = db.find_one(sql, (username,))  # {'id':1,'username':'admin','password':'....',...}if data:islogin = data.get('islogin')if islogin:# 浏览文章# 构建sqluid = data.get('id')sql = 'select title,content from blog where uid=%s'# print(sql)content = db.find_one(sql,(uid,))print('标题为:'+ content.get('title'))print('内容为:'+ content.get('content'))# print(content)else:print('此用户还没有登陆,请登陆....')else:print('用户名有误!')#查看所有用户文章elif choice == '6':username = input('用户名:')if username:# 数据库查询sql = 'select * from user 'data = db.find_all(sql,)  # {'id':1,'username':'admin','password':'....',...}print(data)if data:sql = 'select title,content from blog'# print(sql)content = db.find_all(sql,)print(content)i = len(content)print(i-1)for i in  range(i):print('标题为:'+ content[i].get('title'))print('内容为:'+ content[i].get('content'))print('--------------------------------------')i+=1# print(content)else:print(' 查询失败')#忘记密码elif choice == '7':# 忘记用户名username = input('输入忘记密码的用户名:')if username:# 数据库查询sql = 'select * from user where username=%s'data = db.find_one(sql, (username,))  # {'id':1,'username':'admin','password':'....',...}if data:islogin = data.get('islogin')if islogin:# 登陆可直接修改密码newpassword = input('请输入新的用户密码')newpassword =db.secret_sha256(newpassword)# 构建sql#  update 表名 set 字段1=值1,字段2=值2... where 条件  #不加where修改的是所有的记录sql = 'update  user set password =%s where username= %s 'row = db.insert(sql, (newpassword,username,))if row:print(username + '密码修改成功')else:print('修改失败!')else:print('此用户还没有登陆,请登陆修改密码....')else:print('无此用户!')else:print('输入错误!')

python连接MySQL数据库搭建简易博客相关推荐

  1. docker安装halo+mysql+nginx搭建个人博客

    docker 安装halo+mysql+nginx搭建个人博客(debian or ubuntu) 1 简介 本文主要介绍debian和国内腾讯云ubuntu下安装docker,使用docker安装h ...

  2. python个人博客搭建说明书_技术分享|利用Python Django一步步搭建个人博客(二)...

    原标题:技术分享|利用Python Django一步步搭建个人博客(二) Hello,欢迎来到我们的"利用Python Django一步步搭建个人博客"系列的第二部分.在第一部分中 ...

  3. 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...

    您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...

  4. Python连接Mysql数据库入门

    Python 连接mysql数据库入门教程 直接上代码 数据库建表省略 要执行哪段代码把#去掉即可:有文字解释 难度 : ⭐⭐(全星5颗星的情况下) import pymysql # 导入模块 根据P ...

  5. Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码

    模块安装 使用以下命令安装 PyMySQL: $ pip install PyMySQL 若系统不支持 pip,还可以这样安装: $ git clone https://github.com/PyMy ...

  6. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  7. python连接MySQL数据库的示例代码

    python连接MySQL数据库 示例代码: ''' 获取数据库连接 host 数据库主机名或者是IP地址 port 数据库连接端口,注意是整型数值,一般是3306 user 登录数据库的用户名 pa ...

  8. python连接mysql数据库数据

    使用python连接mysql数据库数据,有以下两种读取数据的方式推荐. 一种是通过游标,及fetch系列方法进行操作,另一种是通过pandas的read_sql()进行读取并操作.各种方法各有优劣, ...

  9. 如何使用python连接mysql数据库

    如何使用python连接mysql数据库 1.要想让python能够连接到mysql,首先就是要先下载安装pymysql的模块: Win+R 进入命令行,使用pip install pymysql安装 ...

最新文章

  1. 【Socket研究】~。~ Scoket开发蛋疼笔记 Silverlight
  2. 一维条形码***技术(Badbarcode)
  3. 【C++】函数的形参
  4. SpringBoot2.1.5 (22)--- SpringBoot设置支持跨域请求
  5. storm中worker、executor、task之间的关系
  6. leetcode之String to Integer (atoi)
  7. 【POJ 1456】Supermarket【两种做法】【二叉堆贪心】【并查集】
  8. 锐捷Linux版的下载和使用(福大客户端)
  9. vue使用FlexPaperViewer插件 预览swf文件 pdf转swf文件
  10. 如何从CPU顶盖获取有用信息
  11. nodejs中使用nodemon加载文件报错
  12. 客户关系管理系统(Customer Relationship Management)
  13. Python创建包,导入包(入门必读)
  14. 37 | 个人成长:学习安全,哪些资源我必须要知道?
  15. 3D打印:三维智能数字化创造(全彩)
  16. 骑士cms任意代码执行(CVE-2020-35339)
  17. matlab mosa算法,尔雅尔雅2020年科学计算与MATLAB语言答案大全
  18. 一只喵的西行记-10 哲学家H+计划
  19. 花1亿扶持优质红人,如涵推动网红经济出圈之路有何深意?
  20. oracle找不到 dba_tables,不经意发现的dba_objects和dba_tables中的细节

热门文章

  1. mplayer安装记录 源码分析
  2. 1分钟看懂:java 项目中 VO 、DTO、Entity,各自是在什么情况下应用的
  3. Idea 同一工程根据不同配置文件启动、idea 同一工程多实例同时运行
  4. 解决: Failed to execute ... maven-deploy-plugin... Return code is: 401, ReasonPhrase: Unauthorized.
  5. 《 第一本Docker书 》读书笔记 --- Docker 各项操作命令及参数说明(docker run 命令各个参数说明)
  6. 理解分布式id生成算法--雪花算法(SnowFlake)
  7. ecshop 收货人信息电话必填改为手机必填
  8. UGUI滚动列表ScrollView使用注意点
  9. poj 3278 catch that cow BFS(基础水)
  10. grunt之Gruntfile(1)