【Flask学习手记】(三) MySQL数据库

方案一:直接连接MySQL数据库

  1. 创建连接文件
    创建MySQL.py文件,用来配置和MySQL数据库连接(应该也可以做到config.py里),具体代码如下:
import mysql.connector     
#我查阅了发现使用这个应该得有个mysql-connector的模块,
#我不知道是啥时候安装的了,反正先用着吧,以后再做笔记。
conn = mysql.connector.connect(user='root', password='1234', database='db')
  1. 引用MySQL.py
import MySQL
  1. 在视图函数中调用
# 1. 创建连接 
c = MySQL.conn.cursor()
# 2. 执行查询
c.execute('select * from products')
# 3. 取出所有结果,放到一个list里
products = c.fetchall()
# 4. 将list返回给页面中的list,并进行渲染
return render_template("list.html",
                           title='Home',
                           products = products
                           )
  1. html页面模版中的显示
    list.html核心代码
<!-----显示产品信息列表----->
{% for p in products %}
  <p>{{ p[0] }},{{ p[1] }},{{ p[2] }}</p>
{% endfor %}

本方法心得:
1、使用简单,跟ASP、PHP等类似。
2、在安装了pymysql之后,将代码中的mysql替换成pymysql,也能执行。不知道是本身mysql这个模块就是安装pymsql之后就才能用,还是说pymysql是继承了mysql模块的基本功能?(还要进一步学习练习)


方案二:pymysql方法

  1. 安装pymysql
    python3 采用pymysql 连接MySQL,弃用了mysqldb,所以python3下得先安装pymysql
pip install PyMySQL
  1. 创建连接配置文件MySQL
    新建一个MySQL.py作为连接MySQL数据库的配置文件,代码如下:
import pymysql
conn = pymysql.connect(user='root', password='8792535', database='cis_cd')

跟方案一中的类似吧?眼熟。

  1. 后面的就是重复方案一的步骤
    就不详细叙述了。但是发现一个问题,采用mysql connector连接没问题,但是到了pymysql连接后,就出现字符乱码问题。

本方法心得:
方法简单
但我还没有搞清楚mysql模块和pymysql模块的异同。还要加油。

方案三:高大上的SQLAlchemy


常见错误

  • Python2和Python3的连接模块
    Python3默认是没有驱动去直接连接和操作MySQL的,Python3里弃用了Python2的MySQLdb模块,如果直接使用,会报以下错误:
ImportError: No module named 'MySQLdb'

可能和一些网上教程出入的地方在这里。
解决方案如下:

  1. 首先肯定得安装PyMySQL
pip install PyMySQL
  1. 加入以下代码
import pymysql
pymysql.install_as_MySQLdb()

测试成功通过


一些需要记得的有用的东东

  • ** ORM**
    Object - Relationship - Mapping
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容