72 lines
1.9 KiB
Python
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)
|