当前位置: 首页 > news >正文

Django学习

1.pycharm社区版创建django

PyCharm社区版如何创建Django项目并运行_pycharm社区版打开django-CSDN博客

2.Django TemplateDoesNotExist: rest_framework

当我们使用djangorestframework框架时,首先下载pip install djangorestframework

参考博文Django TemplateDoesNotExist: rest_framework-CSDN博客

3.rest_framework矿建创建一个api

创建一个文件夹,下面有如下三个文件

在views.py文件中添加如下内容

# 将响应以json格式输出
from rest_framework.response import Response
# 编写api
from rest_framework.decorators import api_view# 表示请求方法为GET
@api_view(['GET'])
def get_data(request):goods = {"name": "测试商品", "price": 12.3}return Response(goods)

urls.py中添加如下内容

from django.urls import path
from . import viewsurlpatterns = [path('', views.get_data)
]

项目的urls.py中添加如下内容

刷新浏览器

可以看到

4.创建应用

python manage.py startapp goods

可以看到目录下面多了一个名为goods的应用

打开项目的settings.py文件,将创建的app注册进去,一定记得添加逗号,不然后面数据迁移会报错

打开goods中的models.py创建模型

from django.db import modelsclass Goods(models.Model):name = models.CharField(max_length=100)price = models.FloatField()description = models.TextField()created_at = models.DateTimeField(auto_now_add=True)def __str__(self):return self.name

终端执行

python manage.py makemigrations
python manage.py migrate

创建超级管理员

python manage.py createsuperuser

注册模型

重启服务,在浏览器输入localhost:8000/admin可以看到如下页面

输入刚才注册的账号密码,可以添加数据

添加完成后可以看到刚才添加的测试数据显示在下面

5.数据序列化

在api文件夹中新建serializers.py,并添加如下内容

# 用于验证数据、序列化数据、反序列化数据
from rest_framework import serializers
from testD.goods.models import Goodsclass GoodsSerializer(serializers.ModelSerializer):class Meta:model = Goodsfields = '_all_'depth = 1

修改api文件夹中views.py

# 将响应以json格式输出
from rest_framework.response import Response
# 编写api
from rest_framework.decorators import api_viewfrom testD.api.serializers import GoodsSerializer
from testD.goods.models import Goods# 表示请求方法为GET
@api_view(['GET'])
def goods_list(request):goods = Goods.objects.all()serializer = GoodsSerializer(goods, many=True)return Response(goods)

修改api文件夹中urls.py

http://www.lryc.cn/news/357538.html

相关文章:

  • 说唱程序员
  • 058.最后一个单词的长度
  • 决策树模型-预测用户是否购买某母婴产品
  • 工具使用-网络性能测试工具(iperf)-TCP 和 UDP 的吞吐量-包转发率参数的理解
  • 什么是JS引擎
  • 前端手写文件上传;使用input实现文件拖动上传
  • Flutter 中的 PhysicalModel 小部件:全面指南
  • Flutter 中的 Center 小部件:全面指南
  • windows 执行node报错 800A1391
  • 无人机操作界面来了,起点就很高呀。
  • Android 11 AudioPolicyService 启动流程
  • java中static关键字面试五连问
  • 基于文本来推荐相似酒店
  • 红队内网攻防渗透:内网渗透之前置知识外网权限提升技术
  • 【漏洞复现】大华智能物联综合管理平台 log4j远程代码执行漏洞
  • OrangePi AIpro测评
  • 写代码之前一定要提前想好思路
  • 「清新题精讲」Skiers
  • Transformer详解(8)-基于transformer的英文到中文翻译模型
  • 算法的时间复杂度(详解)
  • Flutter 中的 NestedScrollViewViewport 小部件:全面指南
  • 断开自定义模块与自定义库的链接
  • 粉丝问,有没有UI的统计页面,安排!
  • Nginx R31 doc-17-debugging 调试
  • python -【一】基础语法
  • 数据结构 | 详解二叉树——堆与堆排序
  • vb.net,C#强制结束进程,“优雅”的退出方式
  • 牛客热题:数据流中的中位数
  • JavaScript-JavaWeb
  • vue组件通讯$parent和$children获取单签组件的⽗组件和当前组件的⼦组件的例子