在Ubuntu上部署SQLAdmin,可以按照以下步骤进行:
首先,确保你的Ubuntu系统是最新的,并且安装了必要的依赖包。
sudo apt update
sudo apt upgrade -y
sudo apt install -y python3-pip python3-venv nginx
创建一个Python虚拟环境,并在其中安装SQLAdmin。
# 创建项目目录
mkdir ~/sqladmin
cd ~/sqladmin
# 创建虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装SQLAdmin
pip install flask-sqlalchemy flask-wtf sqlalchemy-utils
你可以使用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)
在项目目录下创建一个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>
创建一个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
确保虚拟环境已激活,然后启动Flask应用。
source venv/bin/activate
python app.py
现在,你应该能够通过浏览器访问你的SQLAdmin应用了。打开浏览器并访问http://your_server_ip_or_domain/login
,你应该会看到登录页面。
通过以上步骤,你可以在Ubuntu上成功部署SQLAdmin。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: ubuntu如何重启ftp