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 新闻数据的删除

转载于:https://www.cnblogs.com/tqtl911/p/9721560.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值