zoukankan      html  css  js  c++  java
  • Python操作MySQL+Redis+MongoDB

    • 1-1 python操作三大主流数据库导学篇
    • 1-2 数据库简介
    • 1-3 MySQL简介
    • 2-1 MySQL安装及配置
    • 2-2 MySQL图形化管理工具
    • 2-3 SQL语法基础-创建并使用数据库
    • 2-4 SQL语法基础-创建表
    • 2-5 SQL语法基础-修改和删除数据
    • 2-6 设计新闻表
    • 3-1 环境配置及依赖安装
    • 3-2 Python连接MySQL数据库
    • 3-3 Python查询MySQL数据库
    • 3-4 Python更新MySQL数据库
    • 4-1 ORM简介
    • 4-2 SQLAlchemy安装
    • 4-3 ORM模型介绍
    • 4-4 新建ORM模型
    • 4-5 通过ORM新增数据列到数据库
    • 4-6 通过ORM查询数据
    • 4-7 通过ORM修改和删除数据
    • 5-1 项目概述
    • 5-2 Flask入门
    • 5-3 网易新闻框架搭建
    • 5-4 网易新闻后台
    • 5-5 网易新闻后台管理首页及分页
    • 5-7 网易新闻数据修改
    • 5-8 网易新闻数据删除
    • 6-1 MongoDB基础知识
    • 6-2 MongoDB的安装和配置
    • 6-3 使用命令行操作数据库
    • 6-4 练习
    • 6-5 图形化管理工具
    • 7-1 pymongo介绍和安装
    • 7-2 使用Python连接数据库
    • 7-3 使用Python新增数据到MongoDB
    • 7-4 使用Python查询数据
    • 7-5 使用Python修改数据
    • 7-6 使用Python删除数据
    • 8-1 MongoEngine的安装及连接
    • 8-2 ODM模型介绍
    • 9-1 通过ODM查询数据
    • 9-2 通过ODM修改和删除数据
    • 9-3 铜鼓ODM新增数据
    • 10-1 实战项目简介及依赖安装
    • 10-2 新闻前台
    • 10-3 新闻前台首页及分页
    • 10-4 新闻数据的新增
    • 10-5 新闻数据的修改
    • 10-6 新闻数据的删除
    • 11-1 Redis介绍
    • 11-2 Redis的安装
    • 11-3 String类型相关操作
    • 11-4 List类型数据相关操作
    • 11-5 Set类型相关操作
    • 11-6 Hash类型相关操作
    • 11-7 图形化管理工具
    • 12-1 redis-py的安装和连接
    • 12-2 Python操作String类型相关命令
    • 12-3 Python操作List类型相关命令
    • 12-4 Python操作Set类型相关命令
    • 12-5 Python操作Hash类型相关命令
    • 13-1 实战项目介绍及分析
    • 13-2 实现新闻数据的新增
    • 13-3 新闻数据新增事物支持
    • 13-4 新闻数据首页
    • 13-5 新闻类别页和详情页
    • 13-6 后台首页及分页
    • 13-7 新闻数据的修改
    • 13-8 新闻数据的删除

    1-1 python操作三大主流数据库导学篇

    1.1.1 祝大家学有所成!一门课程学习三大主流数据库。

     

    1-2 数据库简介

    1.2.1 数据库即存储数据的仓库;

    1.2.2 数据库的分类之“关系型”和“非关系型”数据库;

    12.3 EXCEL可以理解为关系型数据库-二维表之行和列;

    1-3 MySQL简介

    1.3.1 MySQL百度百科介绍:https://baike.baidu.com/item/mySQL/471251?fr=aladdin

    2-1 MySQL安装及配置

    2-2 MySQL图形化管理工具

     

    2-3 SQL语法基础-创建并使用数据库

    2.3.1 DDL&DML;

    2.3.2 MySQL里面的注释:--;

    2.3.3 使用反引号;

     

    2-4 SQL语法基础-创建表

    2-5 SQL语法基础-修改和删除数据

    2-6 设计新闻表

    2.6.1 设计新闻表;

    • id-新闻的唯一标识
    • title-新闻的标题
    • content-新闻的内容
    • types-新闻的类型
    • created_at-新闻的添加时间
    • image-新闻的缩略图
    • author-新闻的作者
    • view_count-新闻的浏览量
    • 物理删除和逻辑删除(is_valid)
    • is_valid-删除标记

    3-1 环境配置及依赖安装

    3-2 Python连接MySQL数据库

    3-3 Python查询MySQL数据库

    3-4 Python更新MySQL数据库

    4-1 ORM简介

    4.1.1 ORM百度百科:https://baike.baidu.com/item/ORM/3583252?fr=aladdin

    4-2 SQLAlchemy安装

    4-3 ORM模型介绍

    4-4 新建ORM模型

    4.4.1 SQLAlchemy百度百科:https://baike.baidu.com/item/SQLAlchemy/1269830

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    # Project: News 
    # Software: PyCharm
    # Time    : 2018-10-06 08:19
    # File    : models.py
    # Author  : 天晴天朗
    # Email   : tqtl@tqtl.org
    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String, DateTime, Boolean
    
    Base = declarative_base()
    
    
    class News(Base):
        """
        新闻类型
        """
        __tablename__ = 'news'
        id = Column(Integer, primary_key=True)
        title = Column(String(200), nullable=False)
        content = Column(String(2000), nullable=False)
        types = Column(String(10), nullable=False)
        image = Column(String(300), nullable=True)
        author = Column(String(20))
        view_count = Column(Integer)
        created_at = Column(DateTime)
        is_valid = Column(Boolean)
    
        def __repr__(self):
            return "<News(name='%s')>" % self.title
    
    
    engine = create_engine("mysql+pymysql://root:Tqtl911!@#)^@127.0.0.1:3306/news?charset=utf8")
    Base.metadata.create_all(engine)

    4-5 通过ORM新增数据列到数据库

    4.5.1 add_one向数据库中新增一条数据;

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    # Project: News 
    # Software: PyCharm
    # Time    : 2018-10-06 08:19
    # File    : models.py
    # Author  : 天晴天朗
    # Email   : tqtl@tqtl.org
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String, DateTime, Boolean
    
    engine = create_engine("mysql+pymysql://root:Tqtl911!@#)^@127.0.0.1:3306/news?charset=utf8")
    Base = declarative_base()
    Session = sessionmaker(bind=engine)
    
    
    class News(Base):
        """
        新闻类型
        """
        __tablename__ = 'news'
        id = Column(Integer, primary_key=True)
        title = Column(String(200), nullable=False)
        content = Column(String(2000), nullable=False)
        types = Column(String(10), nullable=False)
        image = Column(String(300), nullable=True)
        author = Column(String(20))
        view_count = Column(Integer)
        created_at = Column(DateTime)
        is_valid = Column(Boolean)
    
        def __repr__(self):
            return "<News(name='%s')>" % self.title
    
    
    Base.metadata.create_all(engine)
    
    
    class OrmTest(object):
        def __init__(self):
            self.session = Session()
    
        def add_one(self):
            '''新增记录'''
            new_obj = News(
                title='标题',
                content='内容',
                types='百家',
            )
            self.session.add(new_obj)
            self.session.commit()
            return new_obj
    
    
    def main():
        obj = OrmTest()
        rest = obj.add_one()
        print(rest.id)
    
    
    if __name__ == '__main__':
        main()

    4-6 通过ORM查询数据

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    # Project: News 
    # Software: PyCharm
    # Time    : 2018-10-06 08:19
    # File    : models.py
    # Author  : 天晴天朗
    # Email   : tqtl@tqtl.org
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String, DateTime, Boolean
    
    engine = create_engine("mysql+pymysql://root:Tqtl911!@#)^@127.0.0.1:3306/news?charset=utf8")
    Base = declarative_base()
    Session = sessionmaker(bind=engine)
    
    
    class News(Base):
        """
        新闻类型
        """
        __tablename__ = 'news'
        id = Column(Integer, primary_key=True)
        title = Column(String(200), nullable=False)
        content = Column(String(2000), nullable=False)
        types = Column(String(10), nullable=False)
        image = Column(String(300), nullable=True)
        author = Column(String(20))
        view_count = Column(Integer)
        created_at = Column(DateTime)
        is_valid = Column(Boolean)
    
        def __repr__(self):
            return "<News(name='%s')>" % self.title
    
    
    Base.metadata.create_all(engine)
    
    
    class OrmTest(object):
        def __init__(self):
            self.session = Session()
    
        def add_one(self):
            '''新增记录'''
            new_obj = News(
                title='标题',
                content='内容',
                types='百家',
            )
            self.session.add(new_obj)
            self.session.commit()
            return new_obj
    
        def get_one(self):
            '''查询到一条数据'''
            return self.session.query(News).get(1)
    
        def get_all(self):
            '''查询多条数据'''
            return self.session.query(News).filter_by(is_valid=True)
    
    
    def main():
        # obj = OrmTest()
        # rest = obj.add_one()
        # print(rest.id)
    
        # obj = OrmTest()
        # rest = obj.get_one()
        # if rest:
        #     print('ID:{0}=>{1}'.format(rest.id, rest.title))
        # else:
        #     print("Not Exist!")
    
        obj = OrmTest()
        rest = obj.get_all()
        for i in rest:
            print('ID:{0}=>{1}'.format(i.id, i.title))
    
    
    if __name__ == '__main__':
        main()

    4-7 通过ORM修改和删除数据

    #!/usr/bin/python3
    # -*- coding:utf-8 -*-
    # Project: News 
    # Software: PyCharm
    # Time    : 2018-10-06 08:19
    # File    : models.py
    # Author  : 天晴天朗
    # Email   : tqtl@tqtl.org
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String, DateTime, Boolean
    
    engine = create_engine("mysql+pymysql://root:Tqtl911!@#)^@127.0.0.1:3306/news?charset=utf8")
    Base = declarative_base()
    Session = sessionmaker(bind=engine)
    
    
    class News(Base):
        """
        新闻类型
        """
        __tablename__ = 'news'
        id = Column(Integer, primary_key=True)
        title = Column(String(200), nullable=False)
        content = Column(String(2000), nullable=False)
        types = Column(String(10), nullable=False)
        image = Column(String(300), nullable=True)
        author = Column(String(20))
        view_count = Column(Integer)
        created_at = Column(DateTime)
        is_valid = Column(Boolean)
    
        def __repr__(self):
            return "<News(name='%s')>" % self.title
    
    
    Base.metadata.create_all(engine)
    
    
    class OrmTest(object):
        def __init__(self):
            self.session = Session()
    
        def add_one(self):
            '''新增记录'''
            new_obj = News(
                title='标题',
                content='内容',
                types='百家',
            )
            self.session.add(new_obj)
            self.session.commit()
            return new_obj
    
        def get_one(self):
            '''查询到一条数据'''
            return self.session.query(News).get(1)
    
        def get_all(self):
            '''查询多条数据'''
            return self.session.query(News).filter_by(is_valid=True)
    
        def update_data(self, pk):
            '''修改数据'''
            new_obj = self.session.query(News).get(pk)
            if new_obj:
                new_obj.is_valid = 0
                self.session.add(new_obj)
                self.session.commit()
                return True
            return False
    
        def update_all(self, pk):
            '''修改多条数据'''
            data_list = self.session.query(News).filter_by(is_valid=True)
            for item in data_list:
                item.is_valid = 0
                self.session.add(item)
            self.session.commit()
    
        def delete_data(self, pk):
            '''删除数据'''
            new_obj = self.session.query(News).get(pk)
            self.session.delete(new_obj)
            self.session.commit()
    
        def delete_all(self, pk):
            '''删除全部数据'''
            data_list = self.session.query(News).all()
            for item in data_list:
                self.session.delete(item)
            self.session.commit()
    
    
    def main():
        # obj = OrmTest()
        # rest = obj.add_one()
        # print(rest.id)
    
        # obj = OrmTest()
        # rest = obj.get_one()
        # if rest:
        #     print('ID:{0}=>{1}'.format(rest.id, rest.title))
        # else:
        #     print("Not Exist!")
    
        # obj = OrmTest()
        # rest = obj.get_all()
        # for i in rest:
        #     print('ID:{0}=>{1}'.format(i.id, i.title))
        obj = OrmTest()
        print(obj.update_data(1))
    
    
    if __name__ == '__main__':
        main()

    5-1 项目概述

    flask中文官方文档:https://dormousehole.readthedocs.io/en/latest/

    5-2 Flask入门

     

     一个最小的应用;

    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    5-3 网易新闻框架搭建

    # !/usr/bin/python3
    # -*- coding:utf-8 -*-
    # Project: News 
    # Software: PyCharm
    # Time    : 2018-10-06 08:50
    # File    : news.py
    # Author  : 天晴天朗
    # Email   : tqtl@tqtl.org
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:Tqtl911!@#)^@127.0.0.1/news?charset=utf8'
    db = SQLAlchemy(app)
    
    
    class News(db.Model):
        """
        新闻类型
        """
        __tablename__ = 'news'
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(200), nullable=False)
        content = db.Column(db.String(2000), nullable=False)
        types = db.Column(db.String(10), nullable=False)
        image = db.Column(db.String(300), nullable=True)
        author = db.Column(db.String(20))
        view_count = db.Column(db.Integer)
        created_at = db.Column(db.DateTime)
        is_valid = db.Column(db.Boolean)
    
        def __repr__(self):
            return "<News %r>" % self.title

    5-4 网易新闻后台

    5-5 网易新闻后台管理首页及分页

    5-7 网易新闻数据修改

    5-8 网易新闻数据删除

    6-1 MongoDB基础知识

    6-2 MongoDB的安装和配置

    6-3 使用命令行操作数据库

    6-4 练习

    6-5 图形化管理工具

    7-1 pymongo介绍和安装

    7-2 使用Python连接数据库

    7-3 使用Python新增数据到MongoDB

    7-4 使用Python查询数据

    7-5 使用Python修改数据

    7-6 使用Python删除数据

    8-1 MongoEngine的安装及连接

    8-2 ODM模型介绍

    9-1 通过ODM查询数据

    9-2 通过ODM修改和删除数据

    9-3 铜鼓ODM新增数据

    10-1 实战项目简介及依赖安装

    10-2 新闻前台

    10-3 新闻前台首页及分页

    10-4 新闻数据的新增

    10-5 新闻数据的修改

    10-6 新闻数据的删除

    11-1 Redis介绍

    11-2 Redis的安装

    11-3 String类型相关操作

    11-4 List类型数据相关操作

    11-5 Set类型相关操作

    11-6 Hash类型相关操作

    11-7 图形化管理工具

    12-1 redis-py的安装和连接

    12-2 Python操作String类型相关命令

    12-3 Python操作List类型相关命令

    12-4 Python操作Set类型相关命令

    12-5 Python操作Hash类型相关命令

    13-1 实战项目介绍及分析

    13-2 实现新闻数据的新增

    13-3 新闻数据新增事物支持

    13-4 新闻数据首页

    13-5 新闻类别页和详情页

    13-6 后台首页及分页

    13-7 新闻数据的修改

    13-8 新闻数据的删除

  • 相关阅读:
    Hadoop整理二(Hadoop分布式存储系统HDFS)
    Hadoop整理一(初识Hadoop)
    Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match
    Oracle登录
    神经网络一(用tensorflow搭建简单的神经网络并可视化)
    Qt程序启动画面播放(gif与swf两种动画格式)
    VS2008+GDI实现多幅图像的GIF动画制作
    C++读取特定路径下文件目录及文件名称
    求助——数据处理问题
    VC6.0读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/tqtl911/p/9721560.html
Copyright © 2011-2022 走看看