使用Flask、uwsgi和Nginx部署服务就不多介绍,可以看之前的博客。
创建一个数据库user并使用:
mysql -u root -p
# 连接数据库
mysql> CREATE DATABASE user;
# 返回:Query OK, 1 row affected (0.01 sec)
mysql> use user
# 返回:Database changed
创建表USER:
mysql> CREATE TABLE USER(
-> account CHAR(20) NOT NULL PRIMARY KEY,
-> password CHAR(20) NOT NULL)
-> ENGINE=InnoDB DEFAULT CHARSET=utf8;
register.py:
from flask import Blueprint
from flask import request
import pymysql
register = Blueprint('register',__name__)
def get_conn():
# 数据库连接
conn = pymysql.connect(host='xxx', user='xxx', passwd='xxx',
database='user')
return conn
@register.route('/register', methods=['POST'])
def register1():
db = get_conn()
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 获取 account、password字段数据
account = request.form['account']
password = request.form['password']
# SQL语句,插入数据到数据库
sql = "INSERT INTO USER (account,password) VALUES ('%s', '%s')" % (account, password)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚 (回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态。(在提交之前执行))
db.rollback()
# 关闭数据库连接
db.close()
return 'ok'
myproject.py
import sys
from flask import Flask
sys.path.append('applications')
from register import register
app = Flask(__name__)
app.register_blueprint(register, url_prefix='/user')
if __name__ == "__main__":
app.run()
每次修改代码后都要重启项目:
service myproject restart
查看日志:
sudo cat myproject/uwsgi.log
在Postman中测试:
查看数据库user中的表USER是否插入数据: