1、先在数据库中加入一天测试数据先



2、在model的“views”中载入数据库和model的类

import pymysql
from .models import UserMessage

3、读取数据库中的数据

def getform(request):
all_messages = UserMessage.objects.all() # 读出全部数据
for message in all_messages: # Queryset类型的好处就是可以进行for循环
print(message.name)
return render(request, '留言板.html')

4、当然,我们也可以只取出某些数据

    all_messages = UserMessage.objects.filter(name='bobby', address='北京')

5、保存数据到数据库中

def getform(request):
# all_messages = UserMessage.objects.filter(name='bobby', address='北京')
# for message in all_messages:
# print(message.name)
user_message = UserMessage() # 创建对象
user_message.name = "bobby2"
user_message.message = "helloworld2"
user_message.address = "上海"
user_message.email = "2@2.com"
user_message.object_id = "helloworld2"
user_message.save() return render(request, '留言板.html')

5、run,刷新一下网页,Navicat查看一下数据库,没毛病


现在开始,进行HTML页面和数据库的连接。


6、进入“留言板.html”的form表单,修改action属性为“urls.py”中的指向





记得前后都得加个斜杠

7、注释掉第5点编写的代码后运行项目、刷新网页,竟然报了403错误,这是Django的一种安全机制(不允许任意form就可以把后台的东西提交)



8、在“留言板.html”中form表单的最后写入{% csrf_token %}



9、断点和Debug之后,我们可以看到request对象中的值



其中的key值便是HTML页面中的name值

记得,name值很重要!!!!



10、开始从HTML中娶数据并保存到数据库

    if request.method == "POST":
name = request.POST.get('name', '') # 等号前面的变量名得和HTML中的name值一致
message = request.POST.get('message', '') # 不然娶不到
address = request.POST.get('address', '')
email = request.POST.get('email', '')
user_message = UserMessage() # 创建对象
user_message.name = name
user_message.message = message
user_message.address = address
user_message.email = email
user_message.object_id = "helloworld3"
user_message.save()

目前为止我们已经完成数据库的查和增,那删除呢?


11、删除的两种方法:



  

未完待续~~~

留言板0.4_model中的数据库(1)的更多相关文章

  1. 留言板0.4_model中的数据库(2)

    今天就讲讲:如何将后台数据呈现在HTML页面中,以及url配置时的两点技巧吧. 1.首先在"views.py"中提取出后台数据 def getform(request): mess ...

  2. 个人网页的留言板实现与sae的数据库账户配置

    个人网页(github)的留言板终于搞定了.总之后端的东西不会写,只有修改以前教程里面的文件.记录一下重要的过程. 使用了留言保存的send()函数,模版有注册登录功能.根据需求修改了一下,去掉了登录 ...

  3. 留言板0.3_models设计

    1.编写"message.models": class UserMessage(models.Model): name = models.CharField(max_length= ...

  4. 【weiphp微信开发教程】留言板插件开发详解

    基于weiphp框架的留言板插件教程: 1.功能分析 传统的留言板应该具有发布留言.查看留言.回复留言.管理留言等功能,本教程开发的是最基本的留言板,仅包含发布留言和查看留言两个功能,根据功能用boo ...

  5. JavaScript学习笔记(三)——留言板知操纵DOM节点

    用JavaScript写了一个简易的留言板,暂不涉及数据库接入等. 1.功能以及流程 主要功能即为留言,用两个文本框接受用户输入的用户名以及留言内容,然后通过"提交留言"按钮将用户 ...

  6. 邓_phpcms_二次开发_留言板

    ================================================================= •在 phpcms/modules 目录下创建文件夹,并将其命名为g ...

  7. Android中当数据库需要更新时我们该怎么办?

    问题:Android数据库更新并保留原来的数据如何实现 Andoird的SQLiteOpenHelper类中有一个onUpgrade方法.帮助文档中只是说当数据库升级时该方法被触发.经过实践,解决了我 ...

  8. nodejs中利用expresss脚手架和bootstrap,数据库mongodb搭建的留言板案例

    ## 1. 先打开编辑器,创建一个项目 ## 2. 再打开cmd命令提示符下载express脚手架 express   项目名   --view=ejs 或express   -e    项目名 ## ...

  9. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

随机推荐

  1. todolist增加markdown模块

    markdown编辑器 利用`markdown_js`开源库实现todolist小项目的markdown日记本功能 todolist小项目地址 之前的介绍随笔todoList markdown-js仓 ...

  2. win10上Tensorflow的安装教程

    这几天打算自己入门学习机器学习的内容,首先要安装Tensorflow. 自己捣鼓了几天才捣鼓出来.可能真的是比较笨orz 现在试试写一个教程,希望可以帮到迷路滴孩子们! 大体地说四步: 安装pytho ...

  3. 使用GMap.NET类库,实现地图轨迹回放。(WPF版)

    前言 实现轨迹回放,GMap.NET有对应的类GMapRoute.这个类函数很少,功能有限,只能实现简单的轨迹回放.要实现更复杂的轨迹回放,就需要自己动手了. 本文介绍一种方法,可以实现复杂的轨迹回放 ...

  4. jdk8-lambda-stream的使用

    1, 认识stream(声明式编程) Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator, 原始版本的Iterator,用户只能一个一 ...

  5. php 通过 strtr 方法来替换文本中指定的内容

    通过在文本中指定待替换的内容,如: [{name}] [{age}] 格式可以自己定义, 大概过程: 在文本中定义需要替换的文本内容: 以键值对的方式 组织数据(数组): 用 file_get_con ...

  6. 【IT笔试面试题整理】丑数

    [试题描述]我们把只包含因子2.3和5的数称作丑数.求按从到大的顺序的第1500个丑数.例如6,8是丑数,而14不是,因为它包含因子7.习惯上把1当作第一个丑数. 根据丑数的定义,丑数应该是另一个丑数 ...

  7. C语言指针的高级操作

    C语言指针的高级操作 指针  指针 在上篇博客中我介绍了C语言指针的最基本操作,那么我在这篇博客中会介绍一下C语言指针的一些骚操作. 指向指针的指针 这名字乍一听有点拗口,再次一听就更加拗口了.先看定 ...

  8. Netty 启动过程源码分析 (本文超长慎读)(基于4.1.23)

    前言 作为一个 Java 程序员,必须知道Java社区最强网络框架-------Netty,且必须看过源码,才能说是了解这个框架,否则都是无稽之谈.今天楼主不会讲什么理论和概念,而是使用debug 的 ...

  9. webpack3新特性简介

    6月20号webpack推出了3.0版本,官方也发布了公告.根据公告介绍,webpack团队将未来版本的改动聚焦在社区提出的功能需求,同时将保持一个快速.稳定的发布节奏.本文主要依据公告内容,简单介绍 ...

  10. Repeater控件,判断最少选择一行记录

    本演示中,教会大家使用jQuery来判断Repeater控件,最少选择一行记录. 在Repeater控件中,每行第一列放置一个CheckBox,然后在Repeater控件之外,放置一个Button按钮 ...