zoukankan      html  css  js  c++  java
  • flask连接数据库的增删改查

    flask日常步骤省略

     1 #建立数据库对象
     2 db = SQLAlchemy(app)
     3 
     4 #建立数据库类,用来映射数据库表,将数据库的模型作为参数传入
     5 class User(db.Model):
     6     #声明表名
     7     __tablename__ = 'user'
     8     #建立字段函数
     9     id = db.Column(db.Integer,primary_key=True)
    10     name = db.Column(db.String(200))
    11     password = db.Column(db.String(200))
    12 
    13 #数据库入库操作
    14 @app.route('/')
    15 def index():
    16     #增,入库逻辑
    17     #生命对象
    18     user = User(name='你好你好',password='456456')
    19     #调用添加方法
    20     db.session.add(user)
    21     #提交入库,上面已经导入了提交配置,所以不需要在提交了
    22     # db.session.commit()
    23     return '这是首页'

    #建立数据库对象
    db = SQLAlchemy(app)
    
    #建立数据库类,用来映射数据库表,将数据库的模型作为参数传入
    class User(db.Model):
        #声明表名
        __tablename__ = 'user'
        #建立字段函数
        id = db.Column(db.Integer,primary_key=True)
        name = db.Column(db.String(200))
        password = db.Column(db.String(200))
    
    #数据库删除操作
    @app.route('/del')
    def del_user():
        #根据某个字段做删除,filter_by可以理解为where 条件限定
        #翻译为  delete from user where id=1
        User.query.filter_by(id=1).delete()
        return '这里是删除操作'

     1 #建立数据库对象
     2 db = SQLAlchemy(app)
     3 
     4 #建立数据库类,用来映射数据库表,将数据库的模型作为参数传入
     5 class User(db.Model):
     6     #声明表名
     7     __tablename__ = 'user'
     8     #建立字段函数
     9     id = db.Column(db.Integer,primary_key=True)
    10     name = db.Column(db.String(200))
    11     password = db.Column(db.String(200))
    12 
    13 #数据库的修改操作
    14 @app.route('/edit')
    15 def edit_user():
    16     #根据某个字段做修改操作
    17     #翻译为update user set name='张三' where id=4
    18     User.query.filter_by(id=4).update({'name':'张三'})
    19     return '这里是修改操作'

     1 #建立数据库对象
     2 db = SQLAlchemy(app)
     3 
     4 #建立数据库类,用来映射数据库表,将数据库的模型作为参数传入
     5 class User(db.Model):
     6     #声明表名
     7     __tablename__ = 'user'
     8     #建立字段函数
     9     id = db.Column(db.Integer,primary_key=True)
    10     name = db.Column(db.String(200))
    11     password = db.Column(db.String(200))
    12 
    13 #数据库的查询操作
    14 @app.route('/select')
    15 def select_user():
    16     # #简单的全量查询
    17     # # 翻译为  select * from user
    18     # ulist = User.query.all() 
    19     # print(ulist)
    20     # for i in ulist:
    21     #     print(i.name,i.password)
    22 
    23     # #只取一条
    24     # ulist = User.query.first()
    25     # print(ulist)
    26 
    27     # #使用原生的sql语句
    28     # #翻译为  select * from user order by id desc limit 1,2
    29     item = db.session.execute('select * from user order by id desc')
    30     # #将结果集强转为list
    31     item = list(item)
    32     # print(item)
    33     # item = db.session.execute('update user set password = "321321" where id=7')
    34     #将动态数据传递给模板
    35     return render_template('day5.html',item = item)

    查中的html页面

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7     <title>动态数据库展示</title>
     8     <style>
     9         table{
    10 
    11             border: 5px dashed gold;
    12             background-color: blueviolet;
    13             padding: 10px;
    14 
    15         }
    16     </style>
    17 </head>
    18 <body>
    19     <table>
    20         {# 对数据进行遍历输出,循环tr标签 #}
    21         {% for i in item %}
    22             <tr>
    23                 <td>{{ i.id }}</td>
    24                 <td>{{ i.name }}</td>
    25                 <td>{{ i.password }}</td>
    26             </tr>
    27         {% endfor %}
    28 
    29 
    30     </table>
    31 </body>
    32 </html>

    注:

    以上就是flask连接数据库的增删改查

    如果不习惯,也可以使用原生数据库的增删改查

    格式为 :

    item = db.session.execute('sql语句')
  • 相关阅读:
    Thread之六:线程创建方法
    MySQL优化技巧之四(数据库设计中的一些技巧)
    数据库设计三大范式
    分布式事务之:TCC (Try-Confirm-Cancel) 模式
    spring AOP 之五:Spring MVC通过AOP切面编程来拦截controller
    Thread之五:线程的优先级
    分布式事务之:TCC几个框架的测试情况记录
    spring AOP 之四:@AspectJ切入点标识符语法详解
    IP地址漂移的实现与原理
    高可用集群heartbeat全攻略
  • 原文地址:https://www.cnblogs.com/LeYu/p/10175072.html
Copyright © 2011-2022 走看看