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('.. ...
随机推荐
- Python学习-list操作
Python列表(list)操作: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置 ...
- 洛谷 P3225 [HNOI2012]矿场搭建
传送门 题目大意:建设几个出口,使得图上无论哪个点被破坏,都可以与出口联通. 题解:tarjian求割点 首先出口不能建在割点上,找出割点,图就被分成了几个联通块. 每个联通块,建出口.如果割点数为0 ...
- database - 数据库设计/使用容易忽略的细节
一.设计 1,数据类型尽量使用数字型,数字型的比较比字符型的快很多 2,数据类型尽量小,预测可以满足未来需求的前提 3,尽量建表时字段不允许为null,除非必要,可以用NOT NULL+DEFAULT ...
- win10笔记本用Fiddler对手机App抓包
移动客户端项目有时需要针对手机app进行抓包,这时一般有两种办法:直接下个手机抓包工具的app,在手机上抓:pc机上装上抓包工具,pc和手机连接同一个无线,在pc机上抓.第一种比较简单,但抓包工具自然 ...
- Linux:Linux 常用命令讲解(软件、硬件、文件)
一.Linux 常用命令 所有的命令操作都是在服务器上进行的 自学参考:菜鸟 Linux man + 命令:查看命令的文档: 命令 + --usage:查看命令的文档: 命令 + --help ...
- 1056 Mice and Rice
题意:略 思路:利用queue来模拟一轮一轮的比赛.自己第一遍做的时候完全没有用queue做的意识,代码写的贼烦最后还只得了17分,非常郁闷.通过本题反映出对queue的应用场景季度不熟悉,STL里面 ...
- 温故而知新(java实现)单例模式的七种写法
第一种(懒汉,线程不安全): Java代码 public class Singleton { private static Singleton instance; private Singleton ...
- 小记一次mysql启动失败没有日志的处理
本来mysql好的,之前清理了一次tmp下的东西,mysql在查询的时候提示: Can't create/write to file '/tmp/ib0n3frL 然后停止启动: [root@sevc ...
- C#编程技巧
拷贝/克隆(深度/浅拷贝).序列化.反射 Json/Xml 窗体的单例模式 https://www.cnblogs.com/imstrive/p/5426503.html 使用XmlSerialize ...
- 第八章 数据库连接JDBC(待续)
············