Django--model模型绑定_数据库操作
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 modelsadmin.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 renderfrom django.shortcuts import redirectdef 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 urlfrom django.contrib import adminfrom app01 import viewsurlpatterns = [ 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) |
9、页面验证:

Django--model模型绑定_数据库操作的更多相关文章
- Django之模型层:表操作
目录 Django之模型层:表操作 一.ORM简介 django测试环境搭建 Django终端打印SQL语句 二 单表操作 2.1 按步骤创建表 2.2记录 三.多表操作 1 创建模型 2 添加.删除 ...
- 第五章、Django之模型层---单表操作
目录 第五章.Django之模型层---单表操作 一.ORM查询 二.Django测试环境搭建 三.单表查询 1. 增 2. 改 3. 删 4. 查 第五章.Django之模型层---单表操作 一.O ...
- django Model模型二及Model模型对数据库的操作
在django模型中负责与数据库交互的为Model层,Model层提供了一个基于orm的交互框架 一:创建一个最基本的Model from __future__ import unicode_lite ...
- Django Model 模型
参考: https://www.runoob.com/django/django-model.html https://www.cnblogs.com/taosiyu/p/11260000.html ...
- Django Model模型的实战操作笔记
Model模型的实战操作笔记 1. 创建数据库和表 进入MySQL数据库创建数据库:mytest 进入数据库创建数据表:mytest_users CREATE TABLE `mytest_users` ...
- Django Model模型
Model简介 模型准确且唯一的描述了数据.它包含您储存的数据的重要字段和行为.一般来说,每一个模型都映射一张数据库表. 每个模型都是一个 Python 的类,这些类继承 django.db.mode ...
- 05 Django之模型层---单表操作
一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- 《ASP.NET MVC4 WEB编程》学习笔记------Model模型绑定
本文转载自haiziguo Asp.net mvc中的模型绑定,或许大家经常用,但是具体说他是怎么一回事,可能还是会有些陌生,那么,本文就带你理解模型绑定.为了理解模型绑定,本文会先给出其定义,然后对 ...
- 使用脚本与orm模型交互对数据库操作
场景:如不想启动服务在框架中查看数据库数据,同时使用ORM框架对数据库操作带来的好处 import os import sys #将脚本所在的工程添加到环境变量 sys.path.append('.. ...
随机推荐
- window如何分区
WD官方技术支持电话:800热线800-820-6682(请于周一至周五工作日期间使用固定电话拨打,不支持手机用户)手机用户请拨打400-627 6682. 链接:https://kuyusm.tma ...
- MyEclipse2014安装操作步骤+破解
第一步 第二步 第三步 第四步 第五步 第六步 破解操作步骤 1.安装完成 MyEclipse2014(适用于 2013 等版本)后,不要打开软件.解压破解文件压缩包,得到一下文件列表:双击 run. ...
- jenkins部署应用
1. 系统介绍 Jenkins系统提供了一键部署的作用,整个过程有从提测的分支抓取代码,编译,打包,把打的包部署在应用服务器上,基本有Service,Web和Worker等. 2. Jen ...
- 在IIS站点中使用数字证书
1. SSL解析(内容来自百度百科) SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安 ...
- LOJ#2351. 「JOI 2018 Final」毒蛇越狱
LOJ#2351. 「JOI 2018 Final」毒蛇越狱 https://loj.ac/problem/2351 分析: 首先有\(2^{|?|}\)的暴力非常好做. 观察到\(min(|1|,| ...
- linux用netstat查看服务及监听端口
[root@localhost ~]# netstat -nlp netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接 ...
- ORACLE 11G负载均衡测试
Oracle 11g R2中,引入了SCAN(Single Client Access Name)的特性.该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的SCAN IP以及S ...
- 一个detect问题引发的一系列思考
在用BoneCP的时候,发现一个JVM日志中报了一个异常,大意是“探测(detect)到有数据库链接没有关闭”(不得不说JVM的强大),但是我用的是连接池里面的链接啊,怎么会需要关闭呢? 有问题首先找 ...
- 【Python学习笔记】macosx 10.11 python pip install 出现错误OSError: [Errno 1] Operation not permitted:
http://www.cnblogs.com/xiongqiangcs/p/4914049.html pip install --upgrade pip sudo pip install numpy ...
- fuser命令
fuser命令 http://blog.itpub.net/27573546/viewspace-765240/