django做简单的用户登录和增删改查

本人是用eclipse做的,环境是python2.7、django1.9.13,创建完项目后在cmd启动一个app,python manage.py startapp  login,这个命令如果说没有就创建这个application

1.在settings.py

配置数据库

DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test_cgd',
        'HOST':'127.0.0.1',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456',
    }

}

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'login', #添加应用

)

在views.py中编写主要逻辑代码

# -*- coding: utf-8 -*- 
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
from models import User
from django.shortcuts import redirect,HttpResponse
from django.core.urlresolvers import reverse
from django.shortcuts import render
from django.forms import fields
from captcha.fields import CaptchaField
from django import forms
import os,datetime 

from django.contrib.auth.decorators import login_required

#登录

def login(request):

    if request.method == 'POST':
        username = request.POST.get("username")
        password = request.POST.get("password")
        #对比输入的用户名和密码和数据库中是否一致
        print (username)
        print (password)
        user  = User.objects.filter(username__exact=username,password__exact=password)
        if user :
            response = HttpResponseRedirect('/userlist/')
            response.set_cookie('cookie_username',username,3600)
            return response
        else:
            return render_to_response('login.html')
    else:
        return render_to_response('login.html',context_instance=RequestContext(request))

#列表所有用户

def user_list(request):

    u_list = User.objects.all()

    return render_to_response('userlist.html',{'u_list':u_list})

#添加用户
def add_user(request):
    if request.method == "GET":
        return render_to_response('adduser.html')
    elif request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        phone = request.POST.get('phone')
        User.objects.create(username=username,password=password,email=email,phone=phone)

        return HttpResponseRedirect('/userlist/')

#编辑用户
def edit_user(request,nid):
    if request.method == "GET":
        obj = User.objects.get(id=nid)
        return render_to_response('edituser.html',{'obj': obj})
    elif request.method == "POST":
        username = request.POST.get('username')
        password = request.POST.get('password')
        email = request.POST.get('email')
        phone = request.POST.get('phone')
        User.objects.filter(id=nid).update(username=username,password=password,email=email,phone=phone)

        return HttpResponseRedirect('/userlist/')

#删除用户  
def del_user(request,nid):
    User.objects.filter(id=nid).delete()

    return HttpResponseRedirect("/userlist/")

login.html页面

<html>
<head>
    <title>登录</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
#form_id{width:360px;height:400px;margin:200px auto;padding-top:80px;text-align:center;background-color:#fff;}
    </style>
</head>
<body style="background-repeat: no-repeat;background-color: ">
<div id="form_id">
<form class="form-horizontal" action="/login/" method="post"> 
   {% csrf_token %}
                <div class="control-group" >   
                      <label class="control-label" for="inputUsername">用户名</label>   
                        <div class="controls">  
                         <input type="text" value="{{ form.email.value|default:'' }}" name="username" placeholder="输入常用邮箱">  
                        <span style="color:red;"> {{form.username.errors}}</span>
                        </div>  
                        </div>  
                        <div class="control-group">  
                        <label class="control-label" for="inputPassword">密码</label>   
                        <div class="controls">    
                          <input type="password"  value="{{ form.password.value|default:'' }}" name="password" placeholder="登录密码">    
                           <span style="color:red;"> {{form.password.errors}}</span>
           <div class="control-group">  
             <div class="controls">     
                 <button type="submit" class="btn  btn-primary">登录</button>
              </div> 
            </div>
      </form> 
</div>
</body>

</html>

userlist用户列表页面

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<h1 style="text-align: center">Welcome!</h1>
    <h3 style="text-align: center">用户列表-首页</h3>
    <ul>
        {% for row in u_list %}
            <li>{{ row.username }}   {{ row.password }} {{ row.email }} {{ row.phone }}&nbsp;&nbsp;&nbsp;<a href="/edituser/{{row.id}}/">编辑</a> <a href="/adduser/">添加</a> <a href="/deluser/{{row.id}}">删除</a></li>
        {% endfor %}
    </ul>
</body>
</html>

添加用户页面adduser.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>添加用户</h1>
<!--     {% csrf_token %} -->
    <form action="/adduser/" method="POST">
        {% csrf_token %}
         <div>
        <div><label>用户名:</label></div>
        <input type="text" name="username" >
        </div>
         <div>
          <div><label>密码:</label></div>
          <input type="password" name="password" >
         </div> 
          <div>
          <div><label>郵箱:</label></div>
          <input type="text" name="email" >
         </div> 
          <div>
          <div><label>電話:</label></div>
          <input type="text" name="phone" >
         </div> 
        <input type="submit" value="提交" />
    </form>
</body>

</html>

编辑用户edituser.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>编辑用户</h1>
      
    <form method="POST" action="/edituser/{{obj.id}}/">
        {% csrf_token %}
        <div>
         
        <div><label>用户名:</label></div>
        <input type="text" name="username" value="{{obj.username}}" >
        </div>
        
         <div>
          <div><label>密码:</label></div>
          <input type="password" name="password"  value="{{obj.password}}" >
         </div> 
         <div>
          <div><label>郵箱:</label></div>
          <input type="text" name="email"  value="{{obj.email}}"  >
         </div>
         <div>
          <div><label>電話:</label></div>
          <input type="text" name="phone" value="{{obj.phone}}">
         </div>
        <input type='submit' value="提交" />
    </form>
</body>

</html>

最后在urls.py


# -*- coding: utf-8 -*- 
from django.conf.urls import patterns, include, url
from django.contrib import admin


urlpatterns = patterns("",
    url(r'^admin/', include(admin.site.urls)),
    url(r'^upload/$', 'login.views.upload',name='upload'),
    url(r'^login/$', 'login.views.login',name='login'),
    url(r'^userlist/$', 'login.views.user_list',name='userlist'),
    url(r'^adduser/$', 'login.views.add_user',name='adduser'),
    url(r'^edituser/(\d+)/$', 'login.views.edit_user',name='edituser'),
    url(r'^deluser/(\d+)/$', 'login.views.del_user',name='deluser'),
    

)





简单的练习,希望对初学者有帮助。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是一个简单的示例: 1. 创建Django项目和应用程序 在终端中输入以下命令: ``` django-admin startproject myproject cd myproject python manage.py startapp myapp ``` 2. 定义模型 在myapp/models.py文件中定义一个模型,例如: ``` from django.db import models class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() email = models.EmailField() ``` 3. 创建数据库表 在终端中输入以下命令: ``` python manage.py makemigrations python manage.py migrate ``` 4. 创建视图 在myapp/views.py文件中定义视图函数,例如: ``` from django.shortcuts import render, 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, id): user = User.objects.get(id=id) return render(request, 'user_detail.html', {'user': user}) def user_create(request): if request.method == 'POST': name = request.POST['name'] age = request.POST['age'] email = request.POST['email'] User.objects.create(name=name, age=age, email=email) return redirect('user_list') else: return render(request, 'user_create.html') def user_update(request, id): user = User.objects.get(id=id) if request.method == 'POST': user.name = request.POST['name'] user.age = request.POST['age'] user.email = request.POST['email'] user.save() return redirect('user_list') else: return render(request, 'user_update.html', {'user': user}) def user_delete(request, id): user = User.objects.get(id=id) user.delete() return redirect('user_list') ``` 5. 创建模板 在myapp/templates目录下创建以下模板: user_list.html: ``` <!DOCTYPE html> <html> <head> <title>User List</title> </head> <body> <h1>User List</h1> <table> <tr> <th>Name</th> <th>Age</th> <th>Email</th> <th>Actions</th> </tr> {% for user in users %} <tr> <td>{{ user.name }}</td> <td>{{ user.age }}</td> <td>{{ user.email }}</td> <td> <a href="{% url 'user_detail' user.id %}">Detail</a> <a href="{% url 'user_update' user.id %}">Update</a> <a href="{% url 'user_delete' user.id %}">Delete</a> </td> </tr> {% endfor %} </table> <a href="{% url 'user_create' %}">Create User</a> </body> </html> ``` user_detail.html: ``` <!DOCTYPE html> <html> <head> <title>User Detail</title> </head> <body> <h1>User Detail</h1> <p>Name: {{ user.name }}</p> <p>Age: {{ user.age }}</p> <p>Email: {{ user.email }}</p> <a href="{% url 'user_list' %}">Back to List</a> </body> </html> ``` user_create.html: ``` <!DOCTYPE html> <html> <head> <title>Create User</title> </head> <body> <h1>Create User</h1> <form method="post"> {% csrf_token %} <label>Name:</label> <input type="text" name="name"><br> <label>Age:</label> <input type="number" name="age"><br> <label>Email:</label> <input type="email" name="email"><br> <button type="submit">Create</button> </form> <a href="{% url 'user_list' %}">Back to List</a> </body> </html> ``` user_update.html: ``` <!DOCTYPE html> <html> <head> <title>Update User</title> </head> <body> <h1>Update User</h1> <form method="post"> {% csrf_token %} <label>Name:</label> <input type="text" name="name" value="{{ user.name }}"><br> <label>Age:</label> <input type="number" name="age" value="{{ user.age }}"><br> <label>Email:</label> <input type="email" name="email" value="{{ user.email }}"><br> <button type="submit">Update</button> </form> <a href="{% url 'user_list' %}">Back to List</a> </body> </html> ``` 6. 定义URL路由 在myproject/urls.py文件中定义URL路由,例如: ``` from django.urls import path from myapp.views import user_list, user_detail, user_create, user_update, user_delete urlpatterns = [ path('', user_list, name='user_list'), path('<int:id>/', user_detail, name='user_detail'), path('create/', user_create, name='user_create'), path('<int:id>/update/', user_update, name='user_update'), path('<int:id>/delete/', user_delete, name='user_delete'), ] ``` 7. 运行Django服务器 在终端中输入以下命令: ``` python manage.py runserver ``` 现在可以在浏览器中访问http://127.0.0.1:8000/ 查看用户列表,http://127.0.0.1:8000/create/ 创建用户,http://127.0.0.1:8000/1/ 查看用户详情,http://127.0.0.1:8000/1/update/ 更新用户,http://127.0.0.1:8000/1/delete/ 删除用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值