功能: - 精美欢迎页面 - 用户登录/注册 - 主题切换(明/暗模式) - 快捷导航栏(思源/Gitea/NocoDB) 技术栈:Python 3.12 + Flask 3.0 + SQLite
59 lines
2.3 KiB
HTML
59 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>注册 - 云下飞</title>
|
||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
||
</head>
|
||
<body>
|
||
<!-- 快捷导航栏 -->
|
||
<div class="quick-nav">
|
||
<a href="http://1.14.58.157:6806" target="_blank" class="nav-btn" title="思源笔记">📝 思源</a>
|
||
<a href="http://1.14.58.157:3000" target="_blank" class="nav-btn" title="Gitea">📦 Gitea</a>
|
||
<a href="http://1.14.58.157:8080" target="_blank" class="nav-btn" title="NocoDB">📊 NocoDB</a>
|
||
<button class="theme-toggle" aria-label="切换主题">🌙</button>
|
||
</div>
|
||
|
||
<div class="container auth-container">
|
||
<div class="avatar">
|
||
<span>📝</span>
|
||
</div>
|
||
<h1>用户注册</h1>
|
||
|
||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||
{% if messages %}
|
||
{% for category, message in messages %}
|
||
<div class="flash-{{ category }}">{{ message }}</div>
|
||
{% endfor %}
|
||
{% endif %}
|
||
{% endwith %}
|
||
|
||
<form method="POST" action="{{ url_for('register') }}">
|
||
<div class="form-group">
|
||
<input type="text" name="username" placeholder="用户名(至少3个字符)" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="password" name="password" placeholder="密码(至少6个字符)" required>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="password" name="confirm_password" placeholder="确认密码" required>
|
||
</div>
|
||
<button type="submit" class="btn btn-primary btn-full">注册</button>
|
||
</form>
|
||
|
||
<p class="auth-link">
|
||
已有账户?<a href="{{ url_for('login') }}">立即登录</a>
|
||
</p>
|
||
<p class="auth-link">
|
||
<a href="{{ url_for('index') }}">返回首页</a>
|
||
</p>
|
||
|
||
<div class="footer">
|
||
Powered by <span>Flask</span> & <span>OpenClaw</span>
|
||
</div>
|
||
</div>
|
||
<script src="{{ url_for('static', filename='js/theme.js') }}"></script>
|
||
</body>
|
||
</html>
|