一、环境版本信息:

操作系统:windows10

Django版本:2.0.5

Python版本:3.6.4

Mysql版本: 5.5.53   安装mysql

二、基础信息

1、App中的模型models.py

from django.db import models

# Create your models here.
class users(models.Model):
blog_username = models.CharField(max_length=20)
blog_link = models.CharField(max_length=50)
class account(models.Model):
blog_account = models.CharField(max_length=20)
blog_password = models.CharField(max_length=20)
blog_username = models.CharField(max_length=20)

app_users表插入数据:

app_account表插入数据:

2、在模板文件夹中新建londing.html

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body >
<form action="/londing" method="get">
账号:<input type="text" name="account">
密码:<input type="text" name="password">
<input type="submit" value="登陆">
</form>
</body>
</html>

3、视图views.py

from django.shortcuts import render
from App.models import users,account
from django.http import HttpResponse
# Create your views here. def index(request):
user = users.objects.get(id=1)
context = {'user':user}
return render(request, 'index.html', context)
def londing_form(request): #添加表单页面
context = {}
return render(request,'landing.html',context)
def londing(request): #数据接收和处理
if 'account' in request.GET:
user_account = request.GET['account']
password = request.GET['password']
username = account.objects.get(blog_account = user_account).blog_username #在数据库account表中获取账号对应的用户名(昵称)
user = users.objects.get(blog_username = username) #在users表中获取所有信息
context = {'user':user}
return render(request, 'index.html', context) #在index.html中显示信息

4、修改路径urls.py

from django.contrib import admin
from django.urls import path
from App import views
urlpatterns = [
path('admin/', admin.site.urls),
path(r'index/',views.index),
path(r'londing_form/',views.londing_form),
path(r'londing/',views.londing),
]

三、GET请求测试

上面的代码都是以get请求写的直接开启服务器: python manage.py runserver

四、POST请求测试

1、修改landing.html  注意:action部分相比get请求结尾多了一个“/”

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body >
<form action="/londing/" method="post">
{% csrf_token %} csrf 全称是 Cross Site Request Forgery。这是Django提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。
账号:<input type="text" name="account">
密码:<input type="text" name="password">
<input type="submit" value="登陆">
</form>
</body>
</html>

2、修改views.py中的londing函数

def londing(request):
if request.POST:
user_account = request.POST['account']
password = request.POST['password']
username = account.objects.get(blog_account = user_account).blog_username
user = users.objects.get(blog_username = username)
context = {'user':user}
return render(request, 'index.html', context)

3、测试

【Django笔记四】Django2.0中的表单的更多相关文章

  1. angular4.0中form表单双向数据绑定正确姿势

    issue:用[(ngModel)]="property"指令双向数据绑定,报错. reason1:使用ngModel绑定数据需要注入FormsModule模块,在app.modu ...

  2. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

  3. Django2.0中文文档

    title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...

  4. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  5. Django2.0中得url路由path得用法

    Django2.0中,url得匹配规则更新了,在django1.0中,url是用正则表达式书写得,相对来说比较繁琐一些,在django2.0中进行了升级优化,改为了path from django.u ...

  6. python2.X现在不能安装Django了:Collecting django Using cached Django-2.0.tar.gz

    使用pip安装django2: pip install django 报错: Collecting django  Using cached Django-2.0.tar.gz    Complete ...

  7. Django中的表单

    目录 表单 Django中的表单 用表单验证数据 自定义验证 表单 HTML中的表单是用来提交数据给服务器的,不管后台服务器用的是 Django  还是 PHP还是JSP还是其他语言.只要把 inpu ...

  8. Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法

    Django---ORM的常用字段和自定义字段,DjangoORM字段与数据库类型对应,字段参数和Meta的参数,Django的admin操作,13中orm操作方法,单标的双下方法 一丶ORM常用字段 ...

  9. JavaScript中的表单编程

    表单编程 1获取表单相关信息 1.什么是表单元素 1.什么是表单元素 在H TML中表单就是指form标签,它的作用是将用户输入或选择的数据提交给指定的服务器 2.如何获取表单元素 <form ...

随机推荐

  1. 洛谷P3953 逛公园(dp 拓扑排序)

    题意 题目链接 Sol 去年考NOIP的时候我好像连最短路计数都不会啊qwq.. 首先不难想到一个思路,\(f[i][j]\)表示到第\(i\)个节点,与最短路之差长度为\(j\)的路径的方案数 首先 ...

  2. 22_CopyOnWrite容器

    [简述] Copy-On-Write简称COW,是一种程序设计中的优化策略. JDK里的COW容器分为两种:CopyOnWriteArrayList 和 CopyOnWriteArraySet. Co ...

  3. Java中生成帮助文档

    如何在Java中使用注释 在编写程序时,经常需要添加一些注释,用以描述某段代码的作用. 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上.因此,注释是程序源代码的重要组成部分 ...

  4. 孙鑫VC++视频教程(1-20课全)

    孙鑫VC++视频教程(1-20课全)PPT讲义和源代码 http://down.51cto.com/data/467760 孙鑫VC++从入门到精通开发详解视频教程[20讲] http://down. ...

  5. 弧形菜单(Android)

    弧形菜单(Android) 前言:公司需求,自己写的一个弧形菜单! 效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:1.自定义控件,2.事件分发等 部分代 ...

  6. SQLite入门(二)读写二进制数据

    //读二进制数据的函数 BOOL OpenBinDataFile(BYTE **pBUf,UINT &len) {     if (pBUf == NULL)     {         re ...

  7. react-native-mapbox-gl

    mapbox是基于谷歌地图集成的地图插件,可以在很多平台使用,具体可以看mapbox官网.这里具体讲解“react-native-mapbox-gl”插件,是mapbox结合react native封 ...

  8. MySQL5.7的组提交与并行复制

    从MySQL5.5版本以后,开始引入并行复制的机制,是MySQL的一个非常重要的特性. MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的sc ...

  9. jbd2/dm-2-8 io太高

    用iotop查看发现[jbd2/dm-2-8]几乎占用了99%的io使用率,但是却没有输入输出 后来上网查找,网上有人说是个内核bug,需要升级内核,或者降低jdb2的提交次数,即重新挂载磁盘 添加c ...

  10. Hadoop学习---Hadoop的MapReduce的原理

    MapReduce的原理 MapReduce的原理 NameNode:存放文件的元数据信息 DataNode:存放文件的具体内容 ResourceManager:资源管理,管理内存.CPU等 Node ...