IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 系统学习数据库day18 -> 正文阅读

[Python知识库]系统学习数据库day18

排序/修改/删除

    def exercise_order1(self):
        """ 将三年级所有学生的语文成绩按照从高到低进行排序 """
        stmt = select(StudentGrade).where(StudentGrade.student_id == Student.id).where(StudentGrade.course_id == Course.id)\
            .where(Course.course_name == '语文').order_by(StudentGrade.score.desc())
        querySet = self.session.execute(stmt).mappings().all()
        for item in querySet:
            print(item)
    def exercise_order2(self):
        """ 将三年级所有学生的期末考试总成绩按照从高到低进行排序 """
        stmt = select(Student, func.sum(StudentGrade.score).label('score_sum'))\
            .where(Student.id == StudentGrade.student_id)\
            .group_by(Student.id).order_by(desc("score_sum"))
        querySet = self.session.execute(stmt).mappings().all()
        for item in querySet:
            print(item)

    # 修改
    def update_one_data(self):
        # 第二个是主键
        stu_obj = self.session.get(Student, 2)
        stu_obj.phone_no = "13877778888"
        stu_obj.age = stu_obj.age + 1
        self.session.add(stu_obj)
        self.session.commit()

    def update_more_data(self):
        stmt = update(Student).where(Student.id <=5).values(age=Student.age+1)
        res = self.session.execute(stmt)
        self.session.commit()
        print("行数", res.rowcount)
    # 删除
    def delete_one_data(self):
        # stu_obj = self.session.get(Student, 3)
        # print(stu_obj.id)
        # self.session.delete(stu_obj)
        # self.session.commit()
        stmt = delete(Student).where(Student.id==3)
        res = self.session.execute(stmt)
        self.session.commit()
        print("行数", res.rowcount)
    def delete_more_data(self):
        stmt = delete(StudentGrade).where(StudentGrade.score < 60)
        res = self.session.execute(stmt)
        self.session.commit()
        print("行数", res.rowcount)

Flask

http://127.0.0.1:5000/
127.0.0.1 本机
5000 端口号
@app.route("/") 这个就是首页

from flask import Flask

app = Flask(__name__)

@app.route("/index")
def hello():
    return "Hello Flask"
if __name__ == '__main__':
    app.run()

常见路由

from flask import Flask, request, make_response, redirect, abort
app = Flask(__name__)

@app.route('/')
# http://127.0.0.1:5000/?name=eric&age=19
def hello_world():
    # get 请求 一般在地址里面的都是get
    uname = request.args.get("name")
    print("uname", uname)
    age = request.args.get("age")
    print("age", age)
    return "hello"
# http://127.0.0.1:5000/user/list/77
@app.route('/user/list/<int:page>', methods=["GET"])
def user_list(page=1):

    return "这是用户列表的第{}页数据".format(page)

if __name__ == '__main__':
    app.run()

网易云新闻

from datetime import datetime

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
# 数据库连接的配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/studydatabase1?charset=utf8'
app.config['SQLALCHEMY_ECHO'] = True

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, comment='标题')
    img_url = db.Column(db.String(200), nullable=False, comment='主图地址')
    content = db.Column(db.String(2000), nullable=False, comment='新闻内容')
    is_valid = db.Column(db.Boolean, default=True, comment='逻辑删除')
    is_top = db.Column(db.Boolean, default=False, comment='是否置顶')
    created_at = db.Column(db.DateTime, default=datetime.now(), comment='创建时间')
    updated_at = db.Column(db.DateTime, default=datetime.now(), comment='最后修改时间')
    news_type = db.Column(db.Enum('本地', '百家', '娱乐', '军事'), comment='新闻类别')
@app.route("/")
def hello():
    db.create_all()
    return "Hello Flask"
if __name__ == '__main__':
    app.run()

app.py

from datetime import datetime

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
# 数据库连接的配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/studydatabase1?charset=utf8'
app.config['SQLALCHEMY_ECHO'] = True

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, comment='标题')
    img_url = db.Column(db.String(200), nullable=False, comment='主图地址')
    content = db.Column(db.String(2000), nullable=False, comment='新闻内容')
    is_valid = db.Column(db.Boolean, default=True, comment='逻辑删除')
    is_top = db.Column(db.Boolean, default=False, comment='是否置顶')
    created_at = db.Column(db.DateTime, default=datetime.now(), comment='创建时间')
    updated_at = db.Column(db.DateTime, default=datetime.now(), comment='最后修改时间')
    news_type = db.Column(db.Enum('本地', '百家', '娱乐', '军事'), comment='新闻类别')
@app.route("/")
def hello():
    username = "张三"
    age = 80
    list_user = [
        {'username': '张三', 'age': 32, 'address': '北京'},
        {'username': '李四', 'age': 22},
        {'username': '王五', 'age': 32, 'address': '北京'},
        {'username': '王文', 'age': 22}
    ]
    return render_template('index.html',
                           age=age,
                           username =username, 
                           list_user = list_user)
if __name__ == '__main__':
    app.run()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>模板变量和循环标签</title>
  <style type="text/css">
    .red {
      color: #ff0000;
    }
    .blue {
      color: #0000ff;
    }
  </style>
</head>
<body>
  <h1 style="color: #f00">新闻标题</h1>
  <p>{{username}}</p>
  <p>{{age}}</p>
  {% for item in list_user %}
{#      <p>{{item}}</p>#}
      <p>{{item['username']}}</p>
  {% endfor %}


</body>
</html>

首页展示

from datetime import datetime

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
# 数据库连接的配置
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/studydatabase1?charset=utf8'
app.config['SQLALCHEMY_ECHO'] = True

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, comment='标题')
    img_url = db.Column(db.String(200), nullable=False, comment='主图地址')
    content = db.Column(db.String(2000), nullable=False, comment='新闻内容')
    is_valid = db.Column(db.Boolean, default=True, comment='逻辑删除')
    is_top = db.Column(db.Boolean, default=False, comment='是否置顶')
    created_at = db.Column(db.DateTime, default=datetime.now(), comment='创建时间')
    updated_at = db.Column(db.DateTime, default=datetime.now(), comment='最后修改时间')
    news_type = db.Column(db.Enum('本地', '百家', '娱乐', '军事'), comment='新闻类别')
@app.route("/")
def hello():
    new_list = News.query.filter(News.is_valid==True, News.is_valid==True).all()
    for new in new_list:
        print(new)
    return render_template('index.html',new_list=new_list)
if __name__ == '__main__':
    app.run()

模板

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta content="width=device-width, initial-scale=1.0" name="viewport" />
    <link rel="stylesheet" href="/static/css/index.css">
    <title>首页</title>
</head>

<body>
    <!-- 页面头部 -->
    <header>
        <nav>
            <ul>
                <li><a href="/">首页</a></li>
                <li><a href="/cat/本地/">本地</a></li>
                <li><a href="/cat/百家/">百家</a></li>
                <li><a href="/cat/娱乐/">娱乐</a></li>
                <li><a href="/cat/军事/">军事</a></li>
            </ul>
        </nav>
    </header>
    <!-- /页面头部 -->
    <!-- 新闻内容部分 -->
    <article>
       {% for item in new_list %}
        <div class="list-news">
            <div class="img-content">
                <img src="{{ item.img_url }}" alt="">
            </div>
            <div class="right-content">
                <p><a href="#">{{item.title  }}</a></p>
                <small>{{ item.created_at }}</small>
            </div>
        </div>
       {% endfor %}

    </article>
    <!-- /新闻内容部分 -->
</body>

</html>

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:25:22  更:2021-07-13 17:27:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 3:37:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码