#!/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)