首页 > 数据库 >【项目实战】基于Python+Flask+MySQL的在线笔记管理系统

【项目实战】基于Python+Flask+MySQL的在线笔记管理系统

时间:2023-03-12 15:44:32浏览次数:69  
标签:项目 Python self MySQL db cursor Flask sql 数据库

1、项目说明

基于python+Flask+mysql的在线笔记管理系统项目实战
项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块
创建数据库名称db_online_notes,然后执行sql文件生成数据表和数据

项目需要安装 flask,wtforms,pymysql以及其他的一些模块
安装命令如下:

2、项目主要技术

  • python编程技术

  • flask框架技术

  • mysql数据库技术

  • html编程

  • css编程

  • js编程

 

3、项目结构

  • static 项目静态文件存储文件夹(images,css,js)

  • templates 项目模板文件文件夹(html)

  • log.txt 错误日志存放文件

  • forms.py 表单验证对象

  • mysql_util.py 数据库链接操作

  • manage.py 项目功能业务逻辑实现(项目入口)

 

4、项目主要功能

  • 用户登录注册

  • 文章信息的增删改查

 

5、部分源码

mysql_util.py

import pymysql  # 引入pymysql模块
import traceback  # 引入python中的traceback模块,跟踪错误
import sys  # 引入sys模块


class MysqlUtil:
    def __init__(self):
        # 初始化方法,连接数据库
        host = '127.0.0.1'  # 主机名
        user = 'root'  # 数据库用户名
        password = '123456'  # 数据库密码
        database = 'db_online_notes'  # 数据库名称
        self.db = pymysql.connect(host=host, user=user, password=password, db=database)  # 建立连接
        self.cursor = self.db.cursor(cursor=pymysql.cursors.DictCursor)  # 设置游标,并将游标设置为字典类型

    # 添加数据(用户注册、添加笔记)
    def insert(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            # 提交到数据库执行
            self.db.commit()
        except Exception as e:
            # 如果发生异常,则回滚
            print("发生异常", e)
            self.db.rollback()
        finally:
            # 关闭数据库连接
            self.db.close()

    # 查询数据库:单个结果集
    def fetchone(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            result = self.cursor.fetchone()
        except:
            # 输出异常信息
            traceback.print_exc()
            # 如果发生异常,则回滚
            self.db.rollback()
        finally:
            # 关闭数据库连接
            self.db.close()
        return result

    # 查询数据库:多个结果集
    def fetchall(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            results = self.cursor.fetchall()
        except:
            # 采用sys模块回溯最后的异常
            info = sys.exc_info()
            print(info[0], ":", info[1])
            # 如果发生异常,则回滚
            self.db.rollback()
        finally:
            # 关闭数据库连接
            self.db.close()
        return results

    #  删除结果集
    def delete(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            self.db.commit()
        except:
            # 将错误日志输入到目录文件中
            f = open("\log.txt", 'a')
            traceback.print_exc(file=f)
            f.flush()
            f.close()
            # 如果发生异常,则回滚
            self.db.rollback()
        finally:
            # 关闭数据库连接
            self.db.close()

    # 更新结果集
    def update(self, sql):
        try:
            # 执行sql语句
            self.cursor.execute(sql)
            self.db.commit()
        except:
            # 如果发生异常,则回滚
            self.db.rollback()
        finally:
            # 关闭数据库连接
            self.db.close()

 

6、运行截图


 

 

 

 

7、项目总结

本项目是一个非常适合练手的项目,对我们的python编程和对flask框架的了解和提升都有很大的帮助,推荐大家学习研究这个项目,搞懂其中的原理流程以及知识点非常关键。
 
资料获取地址:https://h5.m.taobao.com/awp/core/detail.htm?ft=t&id=707229541037
B站视频讲解地址:https://www.bilibili.com/video/BV1624y1g7TX/
 
注:其他问题请参看视频讲解,都有介绍,一定要认真看完哦!
代码编写、视频录制不易,感谢您的支持,祝您学习愉快!
 

避免走丢,记得关注哦

标签:项目,Python,self,MySQL,db,cursor,Flask,sql,数据库
From: https://www.cnblogs.com/bhml/p/17208283.html

相关文章

  • MySQL中的函数
    1.函数函数与存储过程一样,也是一组预先编译好的SQL语句的集合,理解为批处理语句。将实现某个功能的一段代码封装起来,只暴露名字,隐藏具体实现过程。函数与存储过程的......
  • MySQL8中如何估算redo日志的大小
    先说公式:mysql>pagergrepsequence;showengineinnodbstatus\Gselectsleep(60);showengineinnodbstatus\Gnopager;mysql>select(<second_value>-<firs......
  • MySQL报Got timeout writing communication packets错误
    应用日志显示连接数据库超时,查看MySQL的错误日志,发现大量的如下错误:2023-02-14T14:19:48.330743+08:00696688[Note][MY-010914][Server]Abortedconnection696688......
  • 实验1Python开发环境使用和编程初体验
    实验任务一:task1_1:实验源码:Python3.10.7(tags/v3.10.7:6cc6b13,Sep52022,14:08:36)[MSCv.193364bit(AMD64)]onwin32Type"help","copyright","credi......
  • python批量处理图片设置分辨率
    fromPILimportImageimportos#设置图片路径和分辨率input_path="input_folder"output_path="output_folder"resolution=(1280,720)#循环处理图片for......
  • 基于Python+Tkinter的gui信息管理系统
    基于Python+Tkinter的gui信息管理系统1、项目说明2、项目主要技术python编程技术flask框架技术mysql数据库技术html编程css编程js编程3、项目结构4、项目主要......
  • python批量拼接word文件
    importosfromdocximportDocument#创建新的空文档merged_doc=Document()#循环遍历所有.docx文件并将其合并到新文档中forfilenameinos.listdir('.'):......
  • 利用python写的科学计算器
    以下是一个简单的科学计算器的Python代码示例,它支持基本的算术运算、三角函数、指数和对数运算等:importmathdefcalculator():print("欢迎使用科学计算器!")......
  • Python中 __getattribute__、 __getattr__ 和 __setattr__ 的使用
    1.__getattribute__官方文档说明:__getattribute__魔法方法是属性访问拦截器,就是当实例的属性被访问时,会自动调用类的__getattribute__方法。当实例调用属性时,比如......
  • Python Numpy
    (一)linspace说明:通过定义均匀间隔创建数值序列。原型:numpy.linspace(start,#start参数数值范围的起始点。如果设置为0,则结果的第一个数为0.该参数必须提供。end,#......