使用Django框架完成用户的增删改查操作

使用Django框架完成用户的增删改查操作,需要按照以下步骤进行:

  1. 创建Django项目:
    在命令行中进入项目目录,执行以下命令创建一个新的Django项目:

    django-admin startproject projectname

其中projectname是你的项目名称。

  1. 创建应用:
    在项目目录下执行以下命令创建一个新的应用:

    python manage.py startapp appname

其中appname是你的应用名称。

  1. 配置数据库:

    在项目的settings.py文件中设置数据库连接。默认使用的是SQLite数据库,你可以根据需要修改为其他数据库,比如MySQL。

  2. 创建用户模型:

    在应用的models.py文件中定义用户模型,例如:

python 复制代码
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()
    age = models.IntegerField()
  1. 迁移数据库:
    在命令行中执行以下命令,将用户模型迁移到数据库中:

    python manage.py makemigrations
    python manage.py migrate

  2. 创建用户视图:
    在应用的views.py文件中定义用户的增删改查视图,例如:

python 复制代码
from django.shortcuts import render, get_object_or_404, redirect
from .models import User

def user_list(request):
    users = User.objects.all()
    return render(request, 'user_list.html', {'users': users})

def user_detail(request, pk):
    user = get_object_or_404(User, pk=pk)
    return render(request, 'user_detail.html', {'user': user})

def user_create(request):
    if request.method == 'POST':
        name = request.POST['name']
        email = request.POST['email']
        age = request.POST['age']
        user = User.objects.create(name=name, email=email, age=age)
        return redirect('user_detail', pk=user.pk)
    return render(request, 'user_create.html')

def user_update(request, pk):
    user = get_object_or_404(User, pk=pk)
    if request.method == 'POST':
        user.name = request.POST['name']
        user.email = request.POST['email']
        user.age = request.POST['age']
        user.save()
        return redirect('user_detail', pk=user.pk)
    return render(request, 'user_update.html', {'user': user})

def user_delete(request, pk):
    user = get_object_or_404(User, pk=pk)
    user.delete()
    return redirect('user_list')
  1. 创建用户模板:
    在项目的templates目录下创建相关的HTML模板文件,例如:
    user_list.html:
html 复制代码
{% for user in users %}
    <p>{{ user.name }}</p>
    <p>{{ user.email }}</p>
    <p>{{ user.age }}</p>
    <a href="{% url 'user_detail' pk=user.pk %}">Detail</a>
    <a href="{% url 'user_update' pk=user.pk %}">Update</a>
    <a href="{% url 'user_delete' pk=user.pk %}">Delete</a>
{% endfor %}

user_detail.html:

html 复制代码
<p>{{ user.name }}</p>
<p>{{ user.email }}</p>
<p>{{ user.age }}</p>
<a href="{% url 'user_update' pk=user.pk %}">Update</a>
<a href="{% url 'user_delete' pk=user.pk %}">Delete</a>

user_create.html:

html 复制代码
<form method="post">
    {% csrf_token %}
    <input type="text" name="name">
    <input type="email" name="email">
    <input type="number" name="age">
    <button type="submit">Create</button>
</form>

user_update.html:

html 复制代码
<form method="post">
    {% csrf_token %}
    <input type="text" name="name" value="{{ user.name }}">
    <input type="email" name="email" value="{{ user.email }}">
    <input type="number" name="age" value="{{ user.age }}">
    <button type="submit">Update</button>
</form>
  1. 配置URL:
    在应用的urls.py文件中设置URL路由,例如:
python 复制代码
from django.urls import path
from . import views

urlpatterns = [
    path('', views.user_list, name='user_list'),
    path('create/', views.user_create, name='user_create'),
    path('<int:pk>/', views.user_detail, name='user_detail'),
    path('<int:pk>/update/', views.user_update, name='user_update'),
    path('<int:pk>/delete/', views.user_delete, name='user_delete'),
]
  1. 运行项目:
    在命令行中执行以下命令,启动Django开发服务器:

    python manage.py runserver

现在你可以通过访问http://localhost:8000/来查看用户列表,并进行增删改查操作。

相关推荐
时序数据说35 分钟前
时序数据库的存储之道:从数据特性看技术要点
大数据·数据库·物联网·开源·时序数据库·iotdb
鸥梨菌Honevid1 小时前
QT解析文本框数据——概述
数据库·qt·mysql
哈里谢顿1 小时前
django中编写一个可执行脚本
django
今天又得骑车了2 小时前
一、MySQL 8.0 之《EXPLAIN ANALYZE 执行计划》
数据库·mysql·database
野犬寒鸦2 小时前
MyBatis-Plus 中使用 Wrapper 自定义 SQL
java·数据库·后端·sql·mybatis
谢斯3 小时前
[python]在drf中使用drf_spectacular
python·django
我爱一条柴ya3 小时前
【AI大模型】RAG系统组件:向量数据库(ChromaDB)
数据库·人工智能·pytorch·python·ai·ai编程
北北~Simple3 小时前
第一次搭建数据库
服务器·前端·javascript·数据库
鸢想睡觉3 小时前
【数据库基础 1】MySQL环境部署及基本操作
数据库·mysql
没有口袋啦3 小时前
《数据库》MySQL备份回复
数据库