1、创建model类
app01/models.py
1 2 3 4 5 6 7 | from django.db import models # Create your models here. class UserInfo(models.Model): #创建model类,必须继承自models.Model类 # 设计表结构和字段,最大长度,默认表名app01_userinfo email = models.CharField(max_length = 16 ) pwd = models.CharField(max_length = 20 ) |
2、注册app
settings.py
1 2 3 4 5 6 7 8 9 | INSTALLED_APPS = [ 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , 'app01' , ] |
3、执行命令创建表
cmd> python manage.py makemigrations 生成源信息,一个字典,位置:app01/migrations/0001_initial.py
cmd> python manage.py migrate 读取生成的源信息,去生成数据库表
4、查看
4.1、用navicat-SQLite工具查看
4.2、用程序查看
app01/admin.py
1 2 | from app01 import models admin.site.register(models.UserInfo) #把UserInfo创建的表注册进admin页面 |
浏览器访问http://127.0.0.1:8000/admin/
点进去后就可以添加用户
5、现在有一个用户user1,登录成功后跳转到index页面,列出数据库表里的所有用户信息。
app01/views.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from django.shortcuts import render from django.shortcuts import redirect def login(request): if request.method = = 'POST' : input_email = request.POST[ 'email' ] input_pwd = request.POST[ 'pwd' ] if input_email = = 'user1@qq.com' and input_pwd = = '123' : return redirect( "/index/" ) #登录成功后跳转到index页面 else : return render(request, "login.html" ,{ "status" : "用户名密码错误" }) return render(request, 'login.html' ) def index(request): #从数据库中获取数据,并和html渲染 from app01 import models #获取表中所有数据 user_info_list = models.UserInfo.objects. all () return render(request, 'index.html' ,{ "user_info_list" :user_info_list,}) |
urls.py
1 2 3 4 5 6 7 8 | from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r '^admin/' , admin.site.urls), url(r '^login/' , views.login), url(r '^index/' , views.index), ] |
templates/index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < title ></ title > </ head > < body > < div > < table > < thead > < tr > < th >邮箱</ th > < th >密码</ th > </ tr > </ thead > < tbody > {% for line in user_info_list %} < tr > < td >{{ line.email }}</ td > < td >{{ line.pwd }}</ td > </ tr > {% endfor %} </ tbody > </ table > </ div > </ body > </ html > |
浏览器访问 http://127.0.0.1:8000/login/
登录成功后跳转到 http://127.0.0.1:8000/index/,列出所有的刚才手动在页面创建的用户。
6、model添加数据
index.html
1 2 3 4 5 | < form action = "/index/" method = "post" > < input type = "text" name = "em" /> < input type = "text" name = "pw" /> < input type = "submit" value = "添加" /> </ form > |
views.py
1 2 3 4 5 6 7 8 9 10 11 | def index(request): #从数据库中获取数据,并和html渲染 from app01 import models #添加数据 if request.method== 'POST' : input_em = request.POST[ 'em' ] input_pw = request.POST[ 'pw' ] models.UserInfo.objects.create(email=input_em,pwd=input_pw) #获取表中所有数据 user_info_list = models.UserInfo.objects.all() return render(request, 'index.html' ,{ "user_info_list" :user_info_list,}) |
7、model删除数据
index.html
1 2 3 4 5 | < form action = "/index/" method = "post" > < input type = "text" name = "email_del" > < input type = "text" name = "pwd_del" > < input type = "submit" value = "删除" > </ form > |
views.py
1 2 3 4 5 6 | def index(request): from app01 import models #删除数据 if request.method = = 'POST' : input_email = request.POST[ 'email_del' ] models.UserInfo.objects. filter (email = input_email).delete() |
8、model更新数据
index.html
1 2 3 4 5 | <form action= "/index/" method= "post" > <input type= "text" name= "email_update" > <input type= "text" name= "pwd_update" > <input type= "submit" value= "更新" > </form> |
views.py
1 2 3 4 5 6 | def index(request): #更新数据 if request.method = = 'POST' : input_em = request.POST[ 'email_update' ] input_pw = request.POST[ 'pwd_update' ] models.UserInfo.objects. filter (email = input_em).update(pwd = input_pw) |