python flask 使用mysql数据库

今天我把自己搭建并使用flask+mysql的过程总结一下,自己也温习一下,顺便也将一些碰到的坑记录下来,给其他朋友做个参考。

1、安装mysql数据库

mysql数据库就不介绍了,比较流行的关系型数据库,之前我都是用单位的oracle11g, 这次我选择从头开始找一款开源免费的。我的服务器是ubuntu 16.04系统的,安装起来相当方便

apt-get install mysql-server mysql-client libmysqlclient-dev

安装过程中会让你输入root账号的密码。

检查是否安装成功

netstat -tap | grep mysql

出现listen xxxx/mysqld 则表示监听成功,mysql默认监听3306端口

2、数据库远程访问配置

登录mysql数据库

mysql -u root -p   #之后提示输入密码

创建数据库

mysql>create database myfirstsqldb;

创建用户并控制该数据库 同时赋予了它远程控制该数据库的权限

mysql> grant all on myfirstsqldb.* to 'newuser' identified by 'newpsw';

既有用户root

mysql>update user set host='%' where user='root' and host='localhost';

切换到该数据库

mysql> use myfirstsqldb

查看mysql占用端口

mysql >show global variables like 'port';

创建表

mysql >CREATE TABLE users(id INT, user_name VARCHAR(64),role_id INT);

退出

mysql >quit;

修改配置文件

nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address= 127.0.0.1前面的加上#号

带着表示

listen only on localhost which is more compatible and is not less secure.

重启mysql

service mysqld restart

有的版本采用的 service mysql restart

systemctl restart mysql.service

最容易忽视但最重要的一点就是你的防火墙运行3306端口出入

我用的阿里云服务器有一个安全组设置,要将3306端口加入到入方向中。


3、连接mysql,并使用Flask_sqlalchemy简单操作

我们先上代码,然后再详细解释


第1,2行就不细说了,导入相应对象,flask_sqlalchemy 一个Flask插件,将面对对象得方法映射到数据库中的关系对象中,能够让我们以操作对象的方式来操作数据库,自动帮你生成原生的sql 语句。

这些安装均可以用pip install来安装

4-7 是程序的初始化以及配置,Session, Cookies以及一些第三方扩展都会用到SECRET_KEY值,加密用的。,第6行是连接mysql数据库的固定格式,pymysql为指定的驱动,mysqldb目前不支持python3。第7行的值如果设为True 表示每次请求结束后都会自动提交数据库的变动,但像add delete insert等仍需要commit

10-17 User类是建立数据库中users表但模型类,__repr__返回的是对object的描述

21行是进行查询,以列表形式返回结果。

22行传入starter这个模版页中

其他常用查询可以查询官网www.pythondoc.com/flask-sqlalchemy/api.html#flask.ext.sqlalchemy.SQLAlchemy

抽时间我会详细研究一些这个插件的。😄

先记住几个常用的api:

db.create_all() #创建表 如果数据库表已经存在于数据库中,那么db.create_all()不会重新创建或者更新这个表。

db.drop_all() #删除表

#插入/删除/更新

user_haha= User(username='haha', role_id=1)

db.session.add(user_haha)

db.session.commit()

db.session.delete(some_role)

db.session.commit()

user_haha.username='newhaha'

db.session.add(user_haha)

db.session.commit()

补充

最近在访问mysql的时候,发现中文出现错误,多方查证后,是由于在创建database的时候使用的编码格式不支持中文。

所以

在安装完mysql后,先不着急创建数据库,需经历一下2步

1、nano /etc/mysql/my.cnf

加入

[mysqld]

character-set-server=utf8

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

保存

2、#重启数据服务

service mysql restart

OK 之后创建的数据库和表格就会使用utf-8了

重启后查看编码

show variables like '%char%';

show create database yourdatabase

总结

喜欢用原生sql的可以直接使用pymysql,感觉两者各有优缺点吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容