使用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/来查看用户列表,并进行增删改查操作。

相关推荐
色空大师31 分钟前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
亚历克斯神1 小时前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
IAUTOMOBILE1 小时前
用Python批量处理Excel和CSV文件
jvm·数据库·python
常利兵2 小时前
Spring项目新姿势:Lambda封装Service调用,告别繁琐注入!
java·数据库·spring
liqianpin12 小时前
MySQL官网驱动下载(jar包驱动和ODBC驱动)【详细教程】
数据库·mysql
kgduu2 小时前
js之客户端存储
javascript·数据库·oracle
light blue bird3 小时前
原生控件GDI完成作业协同界面
jvm·数据库·.net·winform·gdi+界面
聊点儿技术3 小时前
利用IP归属地查询识别异地登录风险:企业账号安全的技术探索
数据库·tcp/ip·安全
Ricky_Theseus3 小时前
SQL Server 的五种约束类型
数据库·sql·oracle
zjshuster3 小时前
数据库分库分表的方法论与实操
数据库·adb