实现功能大概

将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. stm32F105的can2问题
  2. [reference]-armv8汇编学习-书籍推荐
  3. 网易云信AI音频最新研究成果获世界顶级学术会议 ICASSP 2022 认可
  4. CCF2016.4 - A题
  5. oracle 如果存在不创建表,oracle – 如果表不存在则创建表,并在创建后输入一行...
  6. 洛谷P4238 【模板】多项式求逆(NTT)
  7. 【Java】用Jackson进行JSON序列化/反序列化操作
  8. python随机发红包_python 微信红包随机金额
  9. ollydbg,ring3级别的调试软件
  10. mybatisplus page排序_PostgreSQL使用WITH xxx AS()查询,使用Page中的OrderItem排序,会把WITH xxx AS()这段SQL忽略导致报错...
  11. Asp.Net水晶报表边框不显示之解决方法
  12. 蓝桥杯矩阵求和_刷蓝桥杯官网习题,准备蓝桥杯的小伙伴,一起来交流吧(✪ω✪)。(2月27日更新)...
  13. ResNet+ FPN网络结构
  14. Vue+Element UI 商城后台管理系统
  15. bootice.exe linux 启动盘,下载BOOTICE来把你的U盘做成启动盘
  16. 管理软件软件开发_管理在软件开发中的作用
  17. 用tagcloud插件制作的超炫酷“云标签”(3D旋转和平铺),附前后台代码及标签配置页面
  18. Java批量修改文件名
  19. 贾扬清:我对人工智能方向的一点浅见 1
  20. C Prime Plus 第二章 C语言概述

热门文章

  1. vue Bus 总线 组件间通信
  2. 从最大似然估计到最小二乘法
  3. ElasticSearch Java API
  4. [bzoj1059]矩阵游戏
  5. 对session的理解
  6. PHP Uploadify+jQuery.imgAreaSelect插件+AJAX 实现图片上传裁剪 仿微博头像上传功能
  7. 网上看到的一个百度实习生笔试题
  8. biztalk BLogs
  9. raid-6磁盘阵列损坏导致数据丢失的恢复过程(图文教程)
  10. MongoDB误删表恢复