方案一:直接连接MySQL数据库
-
创建连接文件
创建MySQL.py文件,用来配置和MySQL数据库连接(应该也可以做到config.py里),具体代码如下:
import mysql.connector
#我查阅了发现使用这个应该得有个mysql-connector的模块,
#我不知道是啥时候安装的了,反正先用着吧,以后再做笔记。
conn = mysql.connector.connect(user='root', password='1234', database='db')
- 引用MySQL.py
import MySQL
- 在视图函数中调用
# 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
)
-
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方法
-
安装pymysql
python3 采用pymysql 连接MySQL,弃用了mysqldb,所以python3下得先安装pymysql
pip install PyMySQL
-
创建连接配置文件MySQL
新建一个MySQL.py
作为连接MySQL数据库的配置文件,代码如下:
import pymysql
conn = pymysql.connect(user='root', password='8792535', database='cis_cd')
跟方案一中的类似吧?眼熟。
-
后面的就是重复方案一的步骤
就不详细叙述了。但是发现一个问题,采用mysql connector连接没问题,但是到了pymysql连接后,就出现字符乱码问题。
本方法心得:
方法简单
但我还没有搞清楚mysql模块和pymysql模块的异同。还要加油。
方案三:高大上的SQLAlchemy
常见错误
-
Python2和Python3的连接模块
Python3默认是没有驱动去直接连接和操作MySQL的,Python3里弃用了Python2的MySQLdb模块,如果直接使用,会报以下错误:
ImportError: No module named 'MySQLdb'
可能和一些网上教程出入的地方在这里。
解决方案如下:
- 首先肯定得安装PyMySQL
pip install PyMySQL
- 加入以下代码
import pymysql
pymysql.install_as_MySQLdb()
测试成功通过
一些需要记得的有用的东东
- ** ORM**
Object - Relationship - Mapping