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

相关推荐
星星点点洲39 分钟前
【缓存与数据库结合最终方案】伪从技术
数据库·缓存
小黑屋的黑小子42 分钟前
【MySQL】MySQL索引与事务
数据库·mysql·oracle
OK_boom3 小时前
Dapper的数据库操作备忘
数据库
艺杯羹4 小时前
JDBC之ORM思想及SQL注入
数据库·sql·jdbc·orm·sql注入
blackA_4 小时前
数据库MySQL学习——day4(更多查询操作与更新数据)
数据库·学习·mysql
极限实验室5 小时前
Easysearch 迁移数据之 Reindex From Remote
数据库
朴拙数科5 小时前
基于LangChain与Neo4j构建企业关系图谱的金融风控实施方案,结合工商数据、供应链记录及舆情数据,实现隐性关联识别与动态风险评估
数据库·langchain·neo4j
小李学不完6 小时前
Oracle--SQL事务操作与管理流程
数据库
qq_441996056 小时前
为何 RAG 向量存储应优先考虑 PostgreSQL + pgvector 而非 MySQL?
数据库·mysql·postgresql
Ivan陈哈哈6 小时前
Redis是单线程的,如何提高多核CPU的利用率?
数据库·redis·缓存