- 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 網易新聞后台管理首頁及分頁