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 新聞數據的刪除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM