mysql配置及问题

前面三份博客的笔记基本记录了所用到的基本操作,这里开始记录后台和数据库的交互,数据库我们用的是mysql然后的话mysql就不记录了因为很简单,要是没有安装学习的话,基本在网上找找学学就明白了,下面进入正题。

在flask中配置mysql前提是我们已经在mysql中创建了一个数据库来供给我们这个flask专门的database我们创建了db_demo1这个数据库。

然后对于mysql的要求就这么多,接着我们来到之前的 config 文件中对后台数据库的链接进行配置。

DIALECT = 'mysql' # 数据库 mysql

DRIVER = 'pymysql' # 驱动 mysqldb

USERNAME = 'root'

PASSWORD = 'root'

HOST = '127.0.0.1'

PORT = '3306'

DATABASE = 'db_demo1'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)

SQLALCHEMY_TRACK_MODIFICATIONS = False

之前在config中只配置了一个 debug=true就没有了,这是紧接着那个配置的,然后主要是倒数第二行那排声明了各种事宜,有一点需要注意pymysql需要另外再安装一下,在python2中用的是mysqldb,如果在3中使用的话可能会报错,基本已经在3中淘汰了。现在都用pymysql,其他的都是翻译过来的意思,根据自己电脑的设置配置一下就可以了。

config配置好之后我们来到主项目中进一步配置。

db = SQLAlchemy(app)来引用数据库

db.create_all()加在它的下面直接运行如果成功运行,证明数据库连接成功。

数据库基本操作

创建数据库表单

数据库的表单如果对应到我们的代码中,可以看成是一个类,所以通过创建类,来创建表单实现一一对应。

class Article(db.Model):

__tablename__ = 'article'

id = db.Column(db.Integer,primary_key=True,autoincrement=True)

title = db.Column(db.String(100),nullable=False)

content = db.Column(db.Text,nullable=False)

db.session.commit() # 提交所修改的内容很重要一定要加

这里我们创建了一个类对象在数据库中对应创建了一个table名字为article

列名用 db.Colunm()

int用 db.Interger

主键用primary_key=True

varchar用db.String(?)

text用db.Text

not null 用 nullable=False

重新启动之后进入一下首页后,到数据库中看一下表单是否创建成功

可以看到成功创建了规定的表单。

数据库增加记录操作,实例化一个对象然后记得commit一下就行了

article1 = Article(title='aaa',content='bbb')

db.session.add(article1)

db.session.commit()

第一行是实例化一个对象,然后对于这个对象,我们需要把它存到数据库,就利用 db.session.add方法就行了,后面的commit一定不能忘,如果用过git一般都知道。

查 利用Article中继承的query中的filter过滤器来查找两种方式

#方式一

result = Article.query.filter(Article.title == 'yyl').all()

article2 = result[0]

#方式二

article2 = Article.query.filter(Article.title == 'yyl').first()

如果玩过爬虫,应该都清楚一般查找任何东西返回来的都是一个list表单,所以我们实际需要的值在表单里面,用索引或者直接用first方法就行了,实例化了article2之后随便处理都可以。

改操作,线找到,然后对于这个找到的直接修改 之后commit一下

article2 = Article.query.filter(Article.title == 'aaa).first()

article2.content = 'ccc'

因为找到数据库,就相当于是引用了那块内存,修改直接对其生效,相当于数据库中的更新操作。

删除操作 先查询到然后 调用db.session.delete

article1 = Article.query.filter(Article.id == 4)[0]

db.session.delete(article1)

很简单,不再说明。

flask对mysql数据库增删改查_flask后台框架1.4(mysql配置+数据库增删改查)-Go语言中文社区...相关推荐

  1. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

  2. php mysql.so 下载_Linux安装php-mysql提示需要:libmysqlclient.so.18()(64bit)的解决办法-Go语言中文社区...

    一.贴上报错: 错误:软件包:2:postfix-2.10.1-6.el7.x86_64 (@anaconda) 需要:libmysqlclient.so.18()(64bit) 可用: 1:mari ...

  3. mysql表导出和导入命令行_MySQL命令行导出导入数据库和数据表-Go语言中文社区...

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:Program FilesMySQLMySQL Server ...

  4. 安装mysql.dox_linux虚拟机上装mysql数据库-Go语言中文社区

    安装mysql 1.上传已经下载好的mysql安装包到虚拟机下面 2.解压安装包 tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz 3.移动文件到 ...

  5. centos7不能安装mysql数据库_Centos7 上安装mysql遇上的问题:mysql无法正常启动-Go语言中文社区...

    第一次在Centos上安装mysql遇到的一些问题. 第一步就遇到问题,安装mysql-server报错没有可用包. [解决方法] 先要安装mysql # wget http://repo.mysql ...

  6. mysql支持多语言_多种语言连接MySQL-Go语言中文社区

    1.java连接MySQL(JDBC) package Abc; import java.sql.*; public class DBConnection{ public static void ma ...

  7. mysql条件关键字查询有limt_MySQL使用Limit关键字限制查询结果的数量-Go语言中文社区...

    1.Limit关键字的使用 查询数据时,可能会查询出很多的记录.而用户需要的记录可能只是很少的一部分.这样就需要来限制查询结果的数量.Limit是MySQL中的一个特殊关键字.Limit子句可以对查询 ...

  8. mac mysql 查看用户_Mac 最全 Mysql忘记用户名和密码如何处理-Go语言中文社区

    工作中一直在维护开发环境和生产环境的数据库,现在想做些小测试需要用到本地库,但忘记了账户名和密码. 还好本姑娘有点儿懒,用的是navicat工具,有记录用户名,不过无所谓,都能查出来. 第一步:关闭m ...

  9. .tar.gz mysql 安装_mysql tar.gz 版本 linux系统的安装-Go语言中文社区

    mysql下载地址: https://dev.mysql.com/downloads/mysql/ 1.  上传下载的tar.gz文件发送到linux 上传的路径: /usr/local/mysql/ ...

最新文章

  1. TypeError: Total() missing 1 required positional argument: ‘self‘
  2. 【Unity教程】创建一个完整的驾驶游戏
  3. 怎样快速学习React
  4. python使用imbalanced-learn的SMOTEN方法进行上采样处理数据不平衡问题
  5. 企业生产过程中的日志和时间管理详解
  6. App上架应用市场,如何攻破安全过检难题
  7. 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
  8. PHP开发电脑网站支付宝支付详细流程(沙箱测试篇)
  9. Appium+python自动化8-Appium Python API
  10. 文件查询之三:文件和目录的批量操作
  11. 创新 应用:物流公共信息平台的生命-黄惠良
  12. keil5安装之后的L6002U问题
  13. off-by-one error
  14. 数字html显示e的格式化,表格中数字显示是E+数字 怎么正常显示
  15. 谈谈新加坡的教育和学区房
  16. 疫情之下,这10个技巧助你开启云面试的正确姿势
  17. 如何在Coldfusion中上传文件
  18. nacos-server1.4.1linux和windows版本下载
  19. 【java8】LocalDateTime、LocalDate与LocalTime的基本使用
  20. 【生活常识】如何能安逸的活着?

热门文章

  1. 一个低时延高吞吐的日志方案设计-2021年6月4日
  2. Linux内核跟踪eBPF:bpftrace一行教程
  3. ElasticSearch:图解ElasticSearch的搜索过程
  4. 为什么系统调用会消耗较多资源?系统调用的三种方法:软件中断(分析过程)、SYSCALL指令、vDSO(虚拟动态链接对象linux-vdso.so.1)
  5. Linux内存管理:转换后备缓冲区(TLB)原理
  6. glibc:fd_set机制
  7. ncurses输出修饰:attron(),attroff(),attrset(),attr_get(),attr_,wattr_,chgat(),mvchgat()
  8. 在windows下配置PostgreSQL
  9. cenntos系统配置dns地址_在 Cenntos6.8 下安装 Oracle11g
  10. ssms安装_SQLServer 2019下载及安装教程