https://dev.mysql.com/downloads/mysql/
然后再下载数据库的python客户端工具mysql-connector-python-8.0.6-rc-py3.6-windows-x86-64bit.msi:然后安装这两个工具,如果不熟悉,可以学习我的课程:
配置数据库完成之后,就可以在服务器管理器看到如下图:
然后可以mysql数据库管理工具来创建数据库和创建表等,还可以插入数据:
在这个工具里就可以运行下面的SQL语句:
-- 配置MySQL连接为utf-8
SET NAMES 'utf8';
SET CHARSET 'utf8';
-- 创建数据库
CREATE DATABASE IF NOT EXISTS forum DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
USE forum;
-- 创建表users
CREATE TABLE IF NOT EXISTS users
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
name VARCHAR(100) NOT NULL,
password TEXT NOT NULL,
picture TEXT NOT NULL,
description TEXT,
time TIMESTAMP DEFAULT NOW(),
PRIMARY KEY(id),
UNIQUE KEY(email),
UNIQUE KEY(name)
);
-- 创建表posts
CREATE TABLE IF NOT EXISTS posts
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
time TIMESTAMP DEFAULT NOW(),
user_id INT UNSIGNED,
PRIMARY KEY(id),
FOREIGN KEY(user_id) REFERENCES users(id)
);
-- 创建表comments
CREATE TABLE IF NOT EXISTS comments
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
content TEXT NOT NULL,
time TIMESTAMP DEFAULT NOW(),
user_id INT UNSIGNED,
parent_id INT UNSIGNED,
quote_id INT UNSIGNED,
PRIMARY KEY(id),
FOREIGN KEY(user_id) REFERENCES users(id),
FOREIGN KEY(parent_id) REFERENCES posts(id),
FOREIGN KEY(quote_id) REFERENCES comments(id)
);
-- 设置时区为北京时间
-- 1.以下命令仅在当前会话期间有效
/*SET time_zone = '+8:00';*/
-- 2.以下命令则全局有效
SET GLOBAL time_zone = '+8:00';
运行这段SQL语句之后,就会创建一个论坛的数据库,但是为了简单地测试,我在这个数据库添加了自己的测试表:
CREATE TABLE IF NOT EXISTS mintest
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
NAME VARCHAR(100) NOT NULL,
TIME TIMESTAMP DEFAULT NOW(),
PRIMARY KEY(id),
UNIQUE KEY(email),
UNIQUE KEY(NAME)
);
这个表非常简单,只有四个字段,接着在这个表里插入几条数据,以便WEB可以查询到数据:
INSERT INTO `forum`.`mintest` (`email`, `NAME`) VALUES ('[email protected]', 'caimouse1');
这时候,在这个表里就有几条数据,至于几条数据,就看你自己的操作了,如下:
接着下来,就是创建WEB程序了,把数据库里的数据显示到页面。
首先你需要创建一个数据库对象:
db = web.database(dbn='mysql', host='127.0.0.1', port=3308,
db='forum', user='root', pw='12345678')
根据需要修改这里 -- 尤其是username 、 password 、 dbname -- 。 MySQL用户还需要把 dbn 定义改为 mysql。)
这就是所有你需要做的 -- web.py将会自动处理与数据库的连接和断开。
然后把URL列表改回来,只保留 /:
'/', 'index',
像这样编辑并替换 index.html 的全部内容:
$def with (mintests)
这个模板就是把数据库的结果显示到页面里。完整的代码如下:
#python 3.6
#蔡军生
#http://blog.csdn.net/caimouse/article/details/51749579
#
import web
urls = (
'/', 'index'
)
app = web.application(urls, globals())
render = web.template.render('templates/')
db = web.database(dbn='mysql', host='127.0.0.1', port=3308,
db='forum', user='root', pw='12345678')
class index:
def GET(self):
email = db.select('mintest')
return render.index(email)
if __name__ == "__main__":
app.run()
运行这个程序,结果输出如下:
到这里就实现使用WEBPY显示数据库的过程,其实是比较简单的。不过,记得更最新版本的WEB.PY项目:
https://github.com/9073204qq/webpy
否则执行MYSQL数据库的查询时,就会出错,因为原来的代码里有一个BUG。