Django 返回 JSON数据、单文件使用 Django 环境

单文件使用 Django 环境

在某些情况下,需要使用单个文件对项目中的某些逻辑进行测试,因为启动整个项目进行测试显得有些麻烦。
要测试,大部分情况下都需要使用项目中的数据库,所以核心是如何把 Django 中的 ORM 环境嵌入到任意单个文件中。

1、可以在项目的根目录下创建一个 PY 文件
假设目录机构如下

qfsite   # 项目根目录
├── api
├── db.sqlite3
├── db_config
├── manage.py
├── qfsite
├── statics
├── templates
├── tests.py   # 单文件测试
└── users      # users app

注意os导入路径的层次

import  os, sys
# 获取到项目的根目录
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

# 把项目的根目录放到 sys.path 中
sys.path.insert(0, PROJECT_ROOT)

# 设置环境变量
os.environ["DJANGO_SETTINGS_MODULE"] = 'qfsite.settings'
import django
django.setup()

if __name__ == "__main__":
    """在这里写自己的测试代码"""
    # 导入 映射类
    from users.models import UsersProfile

    # 获取表中的第一条数据
    user = UsersProfile.objects.all().first()
    print(user.username, user.email)

执行就完事了

返回 JSON数据

方式一

model_name.objects.values()
JsonResponse模块

from django.http import JsonResponse
from django.views import View

from users.models import UsersProfile


class ApiView(View):
    def get(self, request):
        users = UsersProfile.objects.values()
        return JsonResponse(list(users), safe=False)

image.png

方式二

model_name.objects.all()
serializers模块

from django.http import HttpResponse
from django.core import serializers
from django.views import View

from users.models import UsersProfile


class ApiSerView2(View):
    def get(self, request):
        users = UsersProfile.objects.all()
        data = serializers.serialize('json', users)
        return HttpResponse(data)
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 黑夜会让我们想起什么呢 黑夜真的是让人感到惊奇 在没有一丝丝光亮的情况下 它将一切放大到数白倍 许许多多灯红酒绿下...
    丫头的徐先森阅读 318评论 3 4
  • 在上一篇中我讲解了怎么打开网易云课堂以及怎么登录,在本篇中将更深入的往实战方向靠近,将会讲解以下功能测试用例的脚本...
    xFlamingo阅读 1,722评论 2 1