当前位置: 首页 > news >正文

Flask基础学习2

连接mysql数据库测试(专业版)

[注意1:要导入text库,否则可能出现找不到select 1错误]

[注意2:若出现下列问题,可按照模板代码的顺序db = SQLAlchemy(app) 的位置]

RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set.

from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
app = Flask(__name__)# MySQL所在主机名,默认127.0.0.1
HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "root"
PASSWORD = "****"
DATABASE = "***"
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"db = SQLAlchemy(app)with app.app_context():with db.engine.connect() as conn:result = conn.execute(text("select 1"))print(result.fetchone())  # (1,)

ORM的实现

class User(db.Model):__tablename = 'admin'id = db.Column(db.Integer,primary_key=True,autoincrement=True)sname = db.Column(db.String(100),nullable=False)snumber = db.Column(db.String(100),nullable=False)address = db.Column(db.String(100),nullable=False)with app.app_context():db.create_all()

命令行的实现及结果

mysql> show tables;
+---------------+
| Tables_in_flk |
+---------------+
| admin         |
| user          |
+---------------+
2 rows in set (0.00 sec)

mysql> desc admin;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int          | NO   | PRI | NULL    | auto_increment |
| sname   | varchar(100) | NO   |     | NULL    |                |
| snumber | varchar(100) | NO   |     | NULL    |                |
| address | varchar(100) | NO   |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

 ORM插入实现

user = User(sname='pass', snumber=10, address='163@qq.com')
db.session.add(user)
db.session.commit()
mysql> select * from admin;
+----+-------+---------+------------+
| id | sname | snumber | address    |
+----+-------+---------+------------+
|  1 | pass  | 10      | 163@qq.com |
+----+-------+---------+------------+
1 row in set (0.00 sec)

 ORM查询实现

user  = User.query.get(1)
print(user.sname)
# 输出 pass

ORM筛选实现

user  = User.query.filter_by(sname='pass')
print(user[0].address)
# 输出 163@qq.com

ORM更新实现

user  = User.query.filter_by(sname='pass').first()
user.address = '666@qq.com'
db.session.commit()

 ORM删除实现

user  = User.query.get(1)
db.session.delete(user)
db.session.commit()

其他待更新中。。。

http://www.lryc.cn/news/298116.html

相关文章:

  • 文章页的上下篇功能是否有必要?boke112百科取消上下篇功能
  • Lua序列化
  • Acwing---839. 模拟堆
  • STM32 STD/HAL库驱动W25Q64模块读写字库数据+OLED0.96显示例程
  • Android 移动应用开发 创建第一个Android项目
  • MATLAB语音去噪系统
  • 小程序-上传图片功能
  • alist基本用法@文档阅读@挂载网盘@网盘webdav挂载
  • Hive正则表达式
  • ubuntu20.04-编译安装Qt5.15.2-C++
  • 【PTA|期末复习|编程题】数组相关编程题(二)
  • 重温阿里云宝塔面板部署前后端项目
  • 6个好看的wordpress模板
  • 零基础学python之高级编程(1)---面向对象编程及其类的创建
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • 单片机学习笔记---串口通信(1)
  • 熔断机制解析:如何用Hystrix保障微服务的稳定性
  • 第三节 zookeeper基础应用与实战2
  • C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现
  • vulnhub-->hacksudo-Thor靶机详细思路
  • Java外卖小程序管理系统
  • 挖掘嵌入式系统在物联网和智能设备中的应用潜力
  • 用docker 配置scala spark环境
  • 医疗处方架构设计和实现的实战经验总结
  • 专业140+总分410+华南理工大学811信号与系统考研经验华工电子信息与通信,真题,大纲,参考书。
  • 软件测试学习笔记-测试用例的编写
  • 『运维备忘录』之 Kubernetes(K8S) 常用命令速查
  • Android SDK 上传 Maven 喂奶级教程
  • R语言绘图教程 | 双侧条形图绘制教程
  • ubuntu篇---ubuntu安装python3.9