一、首先配置orm
1、首先在settings.py中配置(数据库需要手动提前先建好)
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'orm_db1', 'HOST':'127.0.0.1', 'PORT':3306, 'USER':'root', 'PASSWORD':'mariadb.123', } }
2、在__init__.py中添加以下内容:
import pymysql pymysql.install_as_MySQLdb()
二、在项目中配置
1、在models.py中创建用户表与字段填写
from django.db import models class User(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=32) password=models.CharField(max_length=32) address=models.CharField(max_length=64) phone=models.CharField(max_length=64,default='1308858585')
2、在总路由添加以后可能要添加的功能路由地址与对应的视图
from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^user_list/',views.user_list), url(r'^delete/',views.delete), url(r'^add/',views.add), url(r'^edit/',views.edit), ]
3、在视图功能文件中填写:views.py
from django.shortcuts import render,HttpResponse,redirect from app01 import models # Create your views here. def user_list(request): if request.method=='GET': # 查询user表中所有数据.--相当于sql select * from app01_user; # 返回结果是QuerySet对象(先当成列表) # [user1,user2] ret=models.User.objects.all() # print(type(ret)) # for i in ret: # print(type(i)) # print(i.name) return render(request,'user_list.html',{'user_list':ret}) def delete(request): if request.method=='GET': id=request.GET.get('id') ret=models.User.objects.filter(id=id).delete() return redirect('/user_list/') def add(request): if request.method=='GET': return render(request, 'add.html') elif request.method=="POST": name=request.POST.get('name') pwd=request.POST.get('password') addr=request.POST.get('addr') phe=request.POST.get('phone_a') # 方式一 # user=models.User(name=name,password=pwd,address=addr) # user.save() #写入数据库 # 方式二 models.User.objects.create(name=name,password=pwd,address=addr,phone=phe) return redirect('/user_list/') def edit(request): if request.method=='GET': id=request.GET.get('id') user=models.User.objects.filter(id=id).first() return render(request,'edit.html',{'user':user}) if request.method=='POST': id=request.POST.get("id") name = request.POST.get('name') pwd = request.POST.get('password') addr = request.POST.get('addr') phe = request.POST.get('phone_a') models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr,phone=phe) return redirect('/user_list/')
4、在templates目录中创建以下html文件
adduser.html
updateuser.html
userlist.html
adduser.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>新增用户</title> </head> <body> <form action="" method="post"> <p>用户名: <input type="text" name="name"></p> <p>密码: <input type="password" name="password"></p> <p>地址: <input type="text" name="addr"></p> <input type="submit" value="提交"> </form> </body> </html>
updateuser.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/updateuser/?id={{ user.id }}" method="post"> <p><input type="hidden" name="id" value="{{ user.id }}"></p> <p>用户名: <input type="text" name="name" value="{{ user.name }}"></p> <p>密码: <input type="text" name="password" value="{{ user.password }}"></p> <p>地址: <input type="text" name="addr" value="{{ user.address }}"></p> <input type="submit" value="提交"> </form> </body> </html>
userlist.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1"> <thead> <tr> <th>id</th> <th>name</th> <th>password</th> <th>addr</th> <th>删除</th> <th>编辑</th> </tr> </thead> <tbody> {% for user in user_list %} <tr> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.password }}</td> <td>{{ user.address }}</td> <td><a href="/deleteuser?id={{ user.id }}">删除</a></td> <td><a href="/updateuser?id={{ user.id }}">编辑</a></td> </tr> {% endfor %} </tbody> <a href="/adduser/">新增用户</a> </table> </body> </html>