美文网首页
Django——应用app之增删改查

Django——应用app之增删改查

作者: fangcaiwen | 来源:发表于2019-12-02 09:40 被阅读0次

最近由于工作忙以及家庭琐事等原因,好久没写文章了。趁今天空闲之余,分享这篇初级Django的应用app入门文章,欢迎大家批评指正。话不多说,直接开始。

1.创建应用user

在项目下执行此命令

 (base) gn:fish wind$ python3 manage.py startapp user

然后在项目的settings.py文件里INSTALLED_APPS这项添加'user.apps.UserConfig'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # myself app
    'blog.apps.BlogConfig',
    # add this line
    'user.apps.UserConfig'
]

2.迁移文件同步到数据库

然后执行这两条命令,同步文件到数据库

(base) gn:fish wind$ python3 manage.py makemigrations
(base) gn:fish wind$ python3 manage.py migrate

执行这些命令后,就会在项目下生成此user应用。

3.应用app结构

应用结构.png

a).admin.py

如下图所示,此处注册你编写的数据model,可以单个也可以多个

from django.contrib import admin

# Register your models here.

from .models import User

admin.site.register([User])

b)apps.py

此处可以更改应用的名字

from django.apps import AppConfig

class UserConfig(AppConfig):
    name = 'user'

c)models.py

此处编写model,定义数据字段。如下示例,定义一个User数据,包含id,name,age,phone,address

from django.db import models

# Create your models here.

class User(models.Model):
    user_id = models.AutoField(primary_key=True)
    user_name = models.TextField()
    user_age = models.IntegerField()
    user_phone = models.TextField()
    user_address = models.TextField()

    def __str__(self):
        return self.user_name

d)test.py

测试文件,暂不编写

e)urls.py

定义路由名,如下所示。分别是查询用户列表、新增用户、编辑用户、删除用户、查询用户

from django.urls import path, include
import user.views

urlpatterns = [
    path('list', user.views.get_user_list),
    path('add', user.views.add_user),
    path('edit/<int:user_id>', user.views.edit_user),
    path('delete/<int:user_id>', user.views.delete_user),
    path('search/<int:user_id>', user.views.search_user),
]

f)views.py

编写具体的业务方法。

(1)导入文件
# -*-coding:utf-8 -*-

from django.http import JsonResponse

from user.models import User
(2)查询用户列表
# 获取用户列表
def get_user_list(requset):
    user_list = User.objects.all()
    list_rel = []
    for item in user_list:
        list_rel.append({
            'user_id': item.user_id,
            'user_name': item.user_name,
            'user_age': item.user_age,
            'user_phone': item.user_phone,
            'user_address': item.user_address,
        })
    return JsonResponse({"code": 200, "list": list_rel})

postman 调用结果:


查询用户列表.png
(3)添加用户
# 添加用户
def add_user(request):
    if request.method == "POST":
        user_name = request.POST.get("user_name")
        user_age = request.POST.get("user_age")
        user_phone = request.POST.get("user_phone")
        user_address = request.POST.get("user_address")
        add_rel = User(user_name=user_name, user_age=user_age, user_phone=user_phone, user_address=user_address)
        add_rel.save()
        return JsonResponse({"code": 200, "msg": "success"})
    else:
        return JsonResponse({"code": 400, "msg": "error"})

postman调用结果:


新增用户.png
(4)编辑用户
# 编辑用户
def edit_user(request, user_id):
    if request.method == "POST":
        try:
            user_name = request.POST.get("user_name")
            user_age = request.POST.get("user_age")
            user_phone = request.POST.get("user_phone")
            user_address = request.POST.get("user_address")
            sou_rel = User.objects.get(user_id=user_id)
            sou_rel.user_name = user_name
            sou_rel.user_age = user_age
            sou_rel.user_phone = user_phone
            sou_rel.user_address = user_address
            sou_rel.save()
            return JsonResponse({"code": 200, "msg": "success"})
        except User.DoesNotExist:
            return JsonResponse({"code": 400, "msg": "数据不存在"})
    else:
        return JsonResponse({"code": 400, "msg": "error"})

postman调用结果:


编辑用户.png
(5)删除用户
# 删除用户
def delete_user(request, user_id):
    if request.method == "DELETE":
        try:
            sou_rel = User.objects.get(user_id=user_id)
            sou_rel.delete()
            return JsonResponse({"code": 200, "msg": "success"})
        except User.DoesNotExist:
            return JsonResponse({"code": 400, "msg": "数据不存在"})

postman调用结果:


删除用户.png
(6)搜索用户
# 搜索用户
def search_user(request, user_id):
    if request.method == "GET":
        try:
            sou_rel = User.objects.get(user_id=user_id)
            rel = {}
            rel["user_id"] = sou_rel.user_id
            rel["user_name"] = sou_rel.user_name
            rel["user_phone"] = sou_rel.user_phone
            rel["user_age"] = sou_rel.user_age
            rel["user_address"] = sou_rel.user_address
            return JsonResponse({"code": 200, "data": rel})
        except User.DoesNotExist:
            return JsonResponse({"code": 400, "msg": "数据不存在"})

postman调用结果:


查询用户.png

补充说明:

要想接口跑通,还需在主项目urls.py文件下添加应用路由,如下所示:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),

    # add myself
    path('blog/', include('blog.urls')),

    # add this line
    path('user/', include('user.urls'))
]

最后执行如下命令,跑起项目,自己试试吧。如有问题,欢迎大家批评指正,共同交流学习。

python3 manage.py runserver

相关文章

  • Django——应用app之增删改查

    最近由于工作忙以及家庭琐事等原因,好久没写文章了。趁今天空闲之余,分享这篇初级Django的应用app入门文章,欢...

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • django2实战3.模型的增删改查

    继上篇 django2实战2.创建博客应用 django对数据的操作采用的是ORM模式,即将数据库的增删改查抽象成...

  • Django + Django Rest Framwork +

    Django + Django Rest Framwork + Vue 实现 增删改查 [TOC] 主要分两步 D...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • Django增删改查

    参考资料 1. 增 方法一 from web.models import *b = Blog(name='Beat...

  • 0812 A

    mongodb 增删改查 增: db.createCollection("name", {options:numb...

  • 增删改

    对于表中的操作,就是增删改查,查内容较多,这里先说增删改。 1.增(insert或者load) 即插入数据,多行插...

  • Django-select下拉菜单的显示与保存

    Django-select下拉菜单的显示与保存: 场景应用 用于数据表有使用外键,然后又需要在前端展示,增删改查的...

网友评论

      本文标题:Django——应用app之增删改查

      本文链接:https://www.haomeiwen.com/subject/tclxgctx.html