当前位置:Gxlcms > 数据库问题 > 面面观 | 使用python 连接数据库,插入并查询数据--link

面面观 | 使用python 连接数据库,插入并查询数据--link

时间:2021-07-01 10:21:17 帮助过:13人阅读

 

 

代码和之前的http没有太大区别,只是增加了数据库的查询和插入操作。 

一共就有两个url,一个list,查询全部数据,一个add,写死增加。

 

3,创建数据库表

MySQL需要创建下数据库和表:


CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;CREATE TABLE`demo`.`user_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(200) DEFAULT NULL,PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

这个user_info表一共就有两个字段,一个id自增,一个是name字符串的。 

当然这个数据库不在本地,是另外的一个Docker 容器。 

http在一个容器上面。

 

4,使用link连接起来

数据创建名称叫mariadb。 

跑http。

 

docker run -d -p 5000:5000 --name py-http --link mariadb:mysql demo/py-http:1.0

 

 

特别注意这里的–link 容器名:昵称,然后对于py-http容器来说mysql就是昵称了。 

可以直接看下evn环境:

 

# docker exec -it py-http

bashbash-4.3# env

HOSTNAME=db7f7aba7c2f

MYSQL_ENV_MYSQL_ROOT_PASSWORD=root

MYSQL_ENV_MARIADB_VERSION=10.1.19+maria-1~jessie

MYSQL_ENV_GOSU_VERSION=1.7

MYSQL_PORT_3306_TCP_PORT=3306

MYSQL_ENV_MARIADB_MAJOR=10.1

MYSQL_PORT_3306_TCP=tcp://172.17.0.2:3306

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PWD=/

TZ=Asia/Shanghai

SHLVL=1HOME=/root

MYSQL_NAME=/py-http/mysql

MYSQL_PORT_3306_TCP_PROTO=tcp

MYSQL_PORT_3306_TCP_ADDR=172.17.0.2

MYSQL_PORT=tcp://172.17.0.2:3306

_=/usr/bin/env

 

可以看到,在py-http容器下面已经把mariadb容器的环境变量直接引入了。 

并且查看hosts:

# cat /etc/hosts

127.0.0.1       localhost ::1     localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

172.17.0.2      mysql 48bd5fbf3ddc mariadb

172.17.0.3      db7f7aba7c2f

 

可以看到有了mysql变量的host了。 

在外部访问:就说明测试成功。数据库能插入查询了。

 

# curl http://127.0.0.1:5000/add

ok[root@localhost http]# curl http://127.0.0.1:5000/list

results:

id:1,name:zhangsan

id:2,name:zhangsan

 

4,总结

 

docker设计的挺好的,每一个容器虽然独立,但是还可以连接起来。 

这样组成一个微服务的集群。通过环境变量,把代码和环境分离。 

保证测试环境,开发环境,线上环境的的一致。 

极大的方便了开发运维,link 命令也非常好使。

 

 新智云官网www.enncloud.cn

技术分享

技术分享

面面观 | 使用python 连接数据库,插入并查询数据--link

标签:print   代码   roo   docker   create   字符   web   inno   error   

人气教程排行