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 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) |
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('.. ...
随机推荐
- matlab中freqz的用法以及多项式的展开
对于一个变量a,matlab中定义需要这样 syms a: 定义之后就可以写由变量组成的式子,比如 c=(1+a^-1)^5; 可以用expand(c) 就能把c展开成多项式,每一项的系数就可以看到. ...
- Vue脚手架搭建过程
1.使用npm全局安装vue-cli(前提是你已经安装了nodejs,否则你连npm都用不了),在cmd中输入一下命令 npm install --global vue-cli 安装完成后,创建自己的 ...
- vs2005中microsoft ado data control 6.0控件问题
在vs2005中是没有这个控件的,需要注册,步骤如下: 1. 先到C:\WINDOWS\system32目录下看看你的系统里是否已经有了MSADODC.ocx和MSDATGRD.ocx这两个文件(多半 ...
- mysql5.7不支持0000-00-00 00:00:00的默认时间设置
方案一: 数据不多的话把原有的5.53的数据改一下符合要求(数据库时间字段里千万不能出现0000-00-00 00:00:00这样的值),然后导出.sql文件,导出的.sql文件里把 DEFAULT ...
- 摆花 (DP动态规划)
2012_p3 摆花 (flower.cpp/c/pas) 时间限制: 1 Sec 内存限制: 128 MB提交: 17 解决: 10[提交][状态][讨论版][命题人:外部导入] 题目描述 3. ...
- linux composer的使用
安装好的composer使用很简单,分两步加载组件例1.搜索组件:composer search phpexcel2.下载组件:composer require 厂商名/包名然后在使用该插件的脚本中引 ...
- 生成器+列表生成式,生成器可以节省内存,随时调取函数运行,以及实现多线程运行函数,__next__()和.send(参数)的区别,a,b=b,a+b其实是元祖的用法,出现异常状态用try...except StopIteration来处理
列表生成式:是代码更简洁. 也可以是函数,比如func(i) 生成器:generator 列表生成式,是中括号,改成小括号,就是生成器: 如果你用列表生成式,生成一亿个数据:这里会卡好久,会生成一亿个 ...
- 第九章 Servlet工作原理解析
9.1 从Servlet容器说起 Servlet容器:Jetty, Tomcat等. 这里以Tomcat为例, 真正管理Servlet的容器是Context容器,一个Context对应一个WE ...
- python学习(三) 使用字符串
第三章 使用字符串 ...
- MMU段式映射(VA -> PA)过程分析
MMU:内存管理单元. CPU寻址的方式: 未使用MMU:CPU发出地址(PA) 直接内存寻址(SDRAM or DDRx). 使用MMU :CPU发出地址(VA) MMU接收CPU发来的地址 经过 ...