如何在Ubuntu上部署SQLAdmin

104
2025/4/7 6:32:19
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu上部署SQLAdmin,可以按照以下步骤进行:

1. 安装必要的依赖

首先,确保你的Ubuntu系统是最新的,并且安装了必要的依赖包。

sudo apt update
sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv nginx

2. 创建虚拟环境并安装SQLAdmin

创建一个Python虚拟环境,并在其中安装SQLAdmin。

# 创建项目目录
mkdir ~/sqladmin
cd ~/sqladmin

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 安装SQLAdmin
pip install flask-sqlalchemy flask-wtf sqlalchemy-utils

3. 配置数据库

你可以使用SQLite、MySQL或PostgreSQL等数据库。这里以SQLite为例。

# 创建一个简单的Flask应用
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Length, EqualTo

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sqladmin.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(120), nullable=False)

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), Length(min=4, max=80)])
    password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=120)])
    submit = SubmitField('Login')

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user and user.password == form.password.data:
            return redirect(url_for('index'))
        else:
            return 'Invalid username or password'
    return render_template('login.html', form=form)

@app.route('/')
def index():
    return 'Welcome to SQLAdmin'

if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)

4. 创建前端模板

在项目目录下创建一个templates文件夹,并在其中创建一个login.html文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h1>Login</h1>
    <form method="post">
        {{ form.hidden_tag() }}
        <p>
            {{ form.username.label }}<br>
            {{ form.username(size=32) }}<br>
            {% for error in form.username.errors %}
            <span style="color: red;">[{{ error }}]</span>
            {% endfor %}
        </p>
        <p>
            {{ form.password.label }}<br>
            {{ form.password(size=32) }}<br>
            {% for error in form.password.errors %}
            <span style="color: red;">[{{ error }}]</span>
            {% endfor %}
        </p>
        <p>{{ form.submit() }}</p>
    </form>
</body>
</html>

5. 配置Nginx

创建一个Nginx配置文件来代理你的Flask应用。

sudo nano /etc/nginx/sites-available/sqladmin

添加以下内容:

server {
    listen 80;
    server_name your_server_ip_or_domain;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置文件:

sudo ln -s /etc/nginx/sites-available/sqladmin /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

6. 启动Flask应用

确保虚拟环境已激活,然后启动Flask应用。

source venv/bin/activate
python app.py

现在,你应该能够通过浏览器访问你的SQLAdmin应用了。打开浏览器并访问http://your_server_ip_or_domain/login,你应该会看到登录页面。

7. 安全性考虑

  • 使用HTTPS来保护数据传输。
  • 使用更强的密码策略。
  • 定期更新依赖包。
  • 考虑使用WSGI服务器(如Gunicorn)来提高性能和安全性。

通过以上步骤,你可以在Ubuntu上成功部署SQLAdmin。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: ubuntu如何重启ftp