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模型绑定_数据库操作的更多相关文章

  1. Django之模型层:表操作

    目录 Django之模型层:表操作 一.ORM简介 django测试环境搭建 Django终端打印SQL语句 二 单表操作 2.1 按步骤创建表 2.2记录 三.多表操作 1 创建模型 2 添加.删除 ...

  2. 第五章、Django之模型层---单表操作

    目录 第五章.Django之模型层---单表操作 一.ORM查询 二.Django测试环境搭建 三.单表查询 1. 增 2. 改 3. 删 4. 查 第五章.Django之模型层---单表操作 一.O ...

  3. django Model模型二及Model模型对数据库的操作

    在django模型中负责与数据库交互的为Model层,Model层提供了一个基于orm的交互框架 一:创建一个最基本的Model from __future__ import unicode_lite ...

  4. Django Model 模型

    参考: https://www.runoob.com/django/django-model.html https://www.cnblogs.com/taosiyu/p/11260000.html ...

  5. Django Model模型的实战操作笔记

    Model模型的实战操作笔记 1. 创建数据库和表 进入MySQL数据库创建数据库:mytest 进入数据库创建数据表:mytest_users CREATE TABLE `mytest_users` ...

  6. Django Model模型

    Model简介 模型准确且唯一的描述了数据.它包含您储存的数据的重要字段和行为.一般来说,每一个模型都映射一张数据库表. 每个模型都是一个 Python 的类,这些类继承 django.db.mode ...

  7. 05 Django之模型层---单表操作

    一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...

  8. 《ASP.NET MVC4 WEB编程》学习笔记------Model模型绑定

    本文转载自haiziguo Asp.net mvc中的模型绑定,或许大家经常用,但是具体说他是怎么一回事,可能还是会有些陌生,那么,本文就带你理解模型绑定.为了理解模型绑定,本文会先给出其定义,然后对 ...

  9. 使用脚本与orm模型交互对数据库操作

    场景:如不想启动服务在框架中查看数据库数据,同时使用ORM框架对数据库操作带来的好处 import os import sys #将脚本所在的工程添加到环境变量 sys.path.append('.. ...

随机推荐

  1. 剑指offer—第三章高质量代码(合并两个排序链表)

    题目:输入员两个递增排序的链表,合并这两个链表并使新的链表中的结点仍然是按照递增排序的. 思路:首先,定义两个头节点分别为Head1和Head2的链表,然后比较第一个节点的值,如果是Head1-> ...

  2. 一般在cmd中报不是合法的命令啥的,都是环境变量没有配置好

    在配置cnpm的时候一定要将环境变量先配置好,配置如下: C:\Program Files\nodejs; C:\Program Files\nodejs\node_global; C:\Progra ...

  3. 不得不注意tornado多进程部署的副作用

    tornado多进程启动时,采用的是fork的方式. 一个现有进程可以调用fork函数创建一个新进程.由fork创建的新进程被称为子进程(child process).fork函数被调用一次但返回两次 ...

  4. CENTOS7配置静态IP后无法ping通外部网络的问题

    我今天想谈论的并不是如何配置静态IP,这样的话题已经有好多高手再谈. 我想谈的是为什么,我按照他们的教程无论如何也要发生各种问题,没办法连接外网的问题. 先给大家看我的最终版配置方案:我只修改了一个文 ...

  5. art-template前端高性能模板

    template.js资源 /*!art-template - Template Engine | http://aui.github.com/artTemplate/*/!function(){fu ...

  6. jQuery ajax submit form 被拦截问题的解决

    一般情况下用js或jquery的submit方法提交form表单是不会被浏览器拦截的,但是发现异步的情况下用js提交form表单就会被浏览器拦截,这样就对功能的实现带来了很多的麻烦.网上看了好多都是同 ...

  7. (转)java中查找List的快捷小方法

    相信java开发的程序员,经常会遍历list里的数据,来查找想要的数据.之后选出来在做处理,我这有个小方法在大量数据的情况下能更快捷,当然这方法只对菜鸟有点用,对老鸟来说也许有更好的方法,请指点 遍历 ...

  8. android中状态栏透明

    设置 Acitivity 所在 window 的属性 @Override protected void onCreate(Bundle savedInstanceState) { super.onCr ...

  9. 中间件——Oracle Fusion Middleware

    Oracle Fusion Middleware定义: 什么是Oracle Fusion Middleware Oracle Fusion Middleware is a comprehensive ...

  10. MySQL存储过程中的3种循环,存储过程的基本语法,ORACLE与MYSQL的存储过程/函数的使用区别,退出存储过程方法

    在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环.还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体 ...