Files
zjpb.net/init_db.py
Jowe 00397a63b8 fix: v2.1.0补充提交 - 配置完善和功能修复
修复内容:
- 完善tag_generator.py的generate_description方法
- 优化index_new.html首页图标CSS
- 更新templates/admin登录页面和后台模板
- 完善config.py配置
- 更新requirements.txt依赖列表
- 优化.gitignore规则

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 21:40:44 +08:00

121 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""
数据库初始化脚本
用于创建数据库表和初始化示例数据
"""
import os
import sys
from app import create_app
from models import db, Site, Tag, Admin
# 设置UTF-8编码输出
if sys.platform.startswith('win'):
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
def init_database():
"""初始化数据库"""
app = create_app('development')
with app.app_context():
print("正在创建数据库表...")
# 删除所有表(开发环境)
db.drop_all()
# 创建所有表
db.create_all()
print("✓ 数据库表创建成功")
# 创建默认管理员
print("\n正在创建默认管理员...")
admin = Admin(
username='admin',
email='admin@example.com',
is_active=True
)
admin.set_password('admin123') # 默认密码
db.session.add(admin)
print("✓ 默认管理员创建成功")
print(" 用户名: admin")
print(" 密码: admin123")
# 创建示例标签
print("\n正在创建示例标签...")
tags_data = [
{'name': 'AI对话', 'slug': 'ai-chat', 'description': 'AI聊天和对话工具', 'icon': 'fas fa-comments', 'sort_order': 100},
{'name': '图像生成', 'slug': 'image-gen', 'description': 'AI图像生成和编辑工具', 'icon': 'fas fa-image', 'sort_order': 90},
{'name': '视频制作', 'slug': 'video', 'description': 'AI视频生成和编辑工具', 'icon': 'fas fa-video', 'sort_order': 80},
{'name': '写作助手', 'slug': 'writing', 'description': 'AI写作和文本生成工具', 'icon': 'fas fa-pen', 'sort_order': 70},
{'name': '代码助手', 'slug': 'coding', 'description': 'AI编程和代码生成工具', 'icon': 'fas fa-code', 'sort_order': 60},
{'name': '音频处理', 'slug': 'audio', 'description': 'AI音频生成和处理工具', 'icon': 'fas fa-music', 'sort_order': 50},
]
tags = []
for tag_data in tags_data:
tag = Tag(**tag_data)
db.session.add(tag)
tags.append(tag)
db.session.commit()
print(f"✓ 创建了 {len(tags)} 个示例标签")
# 创建示例网站
print("\n正在创建示例网站...")
sites_data = [
{
'code': '10001001',
'name': 'ChatGPT',
'url': 'https://chat.openai.com',
'slug': 'chatgpt',
'short_desc': '最强大的AI对话助手可以回答问题、写作、编程等',
'description': 'ChatGPT是OpenAI开发的大型语言模型能够进行自然对话、回答问题、协助写作、编程等多种任务。它基于GPT-4架构拥有强大的理解和生成能力。',
'features': '• 自然语言对话\n• 代码编写和调试\n• 文章写作和润色\n• 数据分析\n• 创意头脑风暴',
'tags': [tags[0], tags[3], tags[4]],
'sort_order': 100
},
{
'code': '10001002',
'name': 'Midjourney',
'url': 'https://www.midjourney.com',
'slug': 'midjourney',
'short_desc': '顶级AI绘画工具可以根据文字描述生成精美图片',
'description': 'Midjourney是一款强大的AI图像生成工具通过简单的文字描述就能创作出高质量的艺术作品。支持多种艺术风格广泛应用于设计、插画等领域。',
'features': '• 文字转图像\n• 多种艺术风格\n• 高清图片输出\n• 图片变体生成\n• 社区画廊',
'tags': [tags[1]],
'sort_order': 95
},
{
'code': '10001003',
'name': 'GitHub Copilot',
'url': 'https://github.com/features/copilot',
'slug': 'github-copilot',
'short_desc': 'AI编程助手帮助你更快地编写代码',
'description': 'GitHub Copilot是由GitHub和OpenAI联合开发的AI编程助手可以根据上下文自动建议代码补全支持多种编程语言。',
'features': '• 智能代码补全\n• 多语言支持\n• 函数生成\n• 代码注释生成\n• IDE集成',
'tags': [tags[4]],
'sort_order': 85
},
]
for site_data in sites_data:
site = Site(**site_data)
db.session.add(site)
db.session.commit()
print(f"✓ 创建了 {len(sites_data)} 个示例网站")
print("\n" + "="*50)
print("数据库初始化完成!")
print("="*50)
print("\n你可以使用以下命令启动应用:")
print(" python app.py")
print("\n然后访问:")
print(" 前台: http://localhost:5000")
print(" 后台: http://localhost:5000/admin")
print(" 登录: http://localhost:5000/admin/login")
print("\n管理员账号:")
print(" 用户名: admin")
print(" 密码: admin123")
print("\n⚠️ 请在生产环境中修改默认密码!")
if __name__ == '__main__':
init_database()