docker + flask + mysql

docker + flask + mysql

上一篇我们完成在服务器部署数据库的操作服务器通过docker部署mysql
。至此,可以在flask上与数据库结合。本次,使用flask_sqlalchemy与数据库进行连接。
docker简单部署flask基础上修改。


1.创建setting.py(用于flask项目与数据库配置)

class test_config(object):
    account = 'root'  # 账号
    password = 'xxxxx'  # 填入密码
    proname = 'xxxx'  # 填入数据库名
    ip = 'xxxxx'  # 填入服务器网址
    port = '3306'  # 端口
    SECRET_KEY = "hahahaha"  # session密钥hhhhhhhh
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(account, password, ip, port, proname)
    # print(SQLALCHEMY_DATABASE_URI)
    SQLALCHEMY_TRACK_MODIFICATIONS = True

2.创建login.html(用于登陆)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
</head>
<body>
<form action="/login" method="post">
    用户名:<input type="text" name="name">
    <br>
    密码:<input type="password" name="pwd">
    <br>
    <input type="submit" value="登陆">
</form>
</body>
</html>

3.修改app.py文件

from flask import Flask, request, render_template, redirect
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('setting.test_config') #载入配置文件
db = SQLAlchemy(app)

from models import User #载入模型


@app.route('/', methods=['GET', 'POST'])
def index():
    return redirect('/login')


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        name = request.form.get('name')
        pwd = request.form.get('pwd')
        print(name, pwd)
        user = User.query.filter(User.name == name, User.password == pwd).first()
        if user:
            return "欢迎登陆"
        else:
            return "登陆失败"


if __name__ == '__main__':
    app.run()

4.创建models.py文件(实现类与数据库表的对应)

from app import db

#与数据库的表相对应
class User(db.Model):
    __tablename__ = 'user'#数据库表名
    name = db.Column(db.String(10), primary_key=True)
    password = db.Column(db.String(45), nullable=False)

    def get_name(self):
        return self.name

    def get_pwd(self):
        return self.password

5.创建数据库对应表,插入数据
在这里插入图片描述
6.修改requirements.txt

flask
gunicorn
gevent
flask_sqlalchemy
pymysql

7.上传镜像在服务器部署,记得mysql的镜像也要运行
看看效果
在这里插入图片描述
在这里插入图片描述
完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值