当前位置: 首页 > 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 views

urlpatterns = [
    path('', views.get_data)
]

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

刷新浏览器

可以看到

4.创建应用

python manage.py startapp goods

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

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

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

from django.db import models


class 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 Goods


class GoodsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Goods
        fields = '_all_'
        depth = 1

修改api文件夹中views.py

# 将响应以json格式输出
from rest_framework.response import Response
# 编写api
from rest_framework.decorators import api_view

from 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

相关文章:

  • JavaScript-JavaWeb
  • 用Python实现办公自动化
  • 《庆余年算法番外篇》:范闲通过最短路径算法在阻止黑骑截杀林相
  • 数据结构——二叉树的实现
  • 学习笔记——交通安全分析02
  • C++Qt操作Lotus Domino数据库 Lotus Domino C++连接Lotus Domino C++快速开发Lotus Domino
  • 力扣:104. 二叉树的最大深度
  • GPT-4你了解多少呢
  • 前端开发工程师——AngularJS
  • Three.js 入门介绍与环境搭建
  • 长方形边框 上方中间有缺口 css
  • microk8s 报错tls: failed to verify certificate: x509:
  • 全文最详细的生产管理完整方案!那些让人头疼的生产管理难题及解决方法!
  • 基于匹配追踪和最大重叠离散小波变换的ECG心电信号R波检测(MATLAB 2018a)
  • 当HR问你是否单身时,该怎么回答?
  • 【MySQL精通之路】SQL优化(1)-查询优化(1)-WHERE子句
  • vue3插槽solt 使用
  • 第十四届蓝桥杯c++研究生组
  • 香橙派AIpro初体验
  • 【深度学习】Transformer梳理
  • 北京公园使用指南
  • 绵阳造AI机器狗参与警务工作,演练中辅助民警控制“嫌疑人员”
  • 从“网点适老化”到“社区嵌入式”,“金融为老上海模式”如何探索?
  • 百岁太极拳大师、陈氏太极拳第十一代嫡宗传人陈全忠逝世
  • 一回合摘下“狮心”,张名扬霸气回应观众:再嘘一个我听听
  • 广西给出最后期限:6月30日之前主动交代问题可从宽处理