阅读量:3
在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文件。
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Logintitle>
head>
<body>
<h1>Loginh1>
<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。
以上就是关于“如何在Ubuntu上部署SQLAdmin”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm