django-vue3-admin-backend/test_book_api.py
2025-11-02 13:25:50 +08:00

72 lines
1.9 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试图书文件API
"""
import os
import sys
import django
# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# 设置Django环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
# 初始化Django
django.setup()
from crud_book.models import CrudBookModel
from django.conf import settings
print("=" * 60)
print("图书文件API测试")
print("=" * 60)
# 检查配置
print("\n1. 配置检查:")
print(f"MEDIA_ROOT: {settings.MEDIA_ROOT}")
print(f"MEDIA_URL: {settings.MEDIA_URL}")
print(f"BASE_DIR: {settings.BASE_DIR}")
# 检查媒体目录
print("\n2. 媒体目录检查:")
media_dir = os.path.join(settings.BASE_DIR, "media")
print(f"媒体目录: {media_dir}")
print(f"目录存在: {os.path.exists(media_dir)}")
books_dir = os.path.join(media_dir, "books")
print(f"图书目录: {books_dir}")
print(f"目录存在: {os.path.exists(books_dir)}")
if os.path.exists(books_dir):
files = os.listdir(books_dir)
print(f"图书文件: {files}")
# 检查图书数据
print("\n3. 图书数据检查:")
books = CrudBookModel.objects.all()
print(f"总图书数: {books.count()}")
for book in books[:5]: # 只显示前5本
print(f"\n图书 ID={book.id}:")
print(f" 书名: {book.title}")
print(f" 文件字段存在: {bool(book.file)}")
if book.file:
try:
file_path = book.file.path
print(f" 文件路径: {file_path}")
print(f" 文件存在: {os.path.exists(file_path)}")
print(f" 文件URL: {book.file.url}")
# 构建完整URL
base_url = "http://127.0.0.1:8000"
full_url = f"{base_url}{book.file.url}"
print(f" 完整URL: {full_url}")
except Exception as e:
print(f" 错误: {e}")
print("\n" + "=" * 60)
print("测试完成")
print("=" * 60)