django学习~第四篇

django表单
   1  今天继续来学学django的表单
       首先介绍下http的方法,这是最基本的
       GET 方法 GET一般用于获取/查询 资源信息,以?分割URL和传输数据,多个参数用&连接,login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD GET提交的数据会在地址栏中显示出来
       POST 方法 而POST一般用于更新 资源信息 把提交的数据放置在是HTTP包的包体中 提交的数据不会在地址栏中显示出来

GET 方法
        # -*- coding: utf-8 -*-

from django.http import HttpResponse
        from django.shortcuts import render_to_response

# 表单
        def search_form(request):
        return render_to_response(‘search_form.html‘)///重定向到某个页面

# 接收请求数据
       def search(request):
         request.encoding=‘utf-8‘
         if ‘q‘ in request.GET://获取request字典的键
         message = ‘你搜索的内容为: ‘ + request.GET[‘q‘]//这里的q为表单的name
       else:
        message = ‘你提交了空表单‘
       return HttpResponse(message)

request为一个字典,包含着返回的集合
       return HttpResponse 返回变量
       return render_to_response 返回页面
      添加页面
     <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>菜鸟教程(runoob.com)</title>
      </head>
       <body> //这里采用了form表单形式 method为get
       <form action="/search" method="get">
        <input type="text" name="q">
        <input type="submit" value="搜索">
        </form>
        </body>
  </html>
    修改url
    url(r‘^search-form$‘, search.search_form),
    url(r‘^search$‘, search.search),
    经典错误 scii’ codec can’t decode byte 0xef in position 0:ordinal not in range(128)
    我这里遇到的就是django后端函数返回到前端的汉字问题,暂时先去掉
    POST方法
   添加html
   <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <form action="/search-post" method="post">
    {% csrf_token %}
    <input type="text" name="q">
    <input type="submit" value="Submit">
     </form>

<p>{{ rlt }}</p>
     </body>
      </html>
      添加函数

from django.shortcuts import render
      from django.views.decorators import csrf

# 接收POST请求数据
       def search_post(request):
      ctx ={}
      if request.POST:
      ctx[‘rlt‘] = request.POST[‘q‘]//这里是POST方法
      return render(request, "post.html", ctx)
      Http Request 主要对象
     1 path
     2 method GET POST Request (G P的集合)方法
     3 COOKIES
     4 FILES
     5 META HTTP头部
     6 session
      在以上两段代码中,均调用了request对象获取值

原文地址:https://www.cnblogs.com/danhuangpai/p/9140470.html

时间: 2024-08-28 15:03:10

django学习~第四篇的相关文章

从.Net到Java学习第四篇——spring boot+redis

从.Net到Java学习第一篇——开篇 从.Net到Java学习第二篇——IDEA and start spring boot 从.Net到Java学习第三篇——spring boot+mybatis+mysql 接上一篇,本篇使用到的框架redis.FastJSON. 环境准备 安装redis,下图是我本机的redis绿色版,你可以网上自行下载安装,如果不知道如何怎么操作,可以移步到我的另一篇文章:ASP.NET Redis 开发 以管理员身份打开CMD窗口: C:\Users\zouqj>e

django学习~第五篇

一 简介:之前我们都是大概了解了下django本身和一些基本功能 这次我们深入一些聊        model模块 此处不考虑外键等特殊情况       今天来实现用户注册界面       1 常见的具体字段介绍            AutoField 自增列            CharField 字符类型            BooleanField 布尔类型            DateTimeField 日期类型           IntegerField 整型       2

MongoDB学习第四篇 --- Query操作

一.shell执行mongodb查询(简单json数据结构) 查询所有:db.inventory.find() 按条件查询:db.inventory.find( { status: "D" } ) in条件查询:db.inventory.find( { status: { $in: [ "A", "D" ] } } ) and和范围条件查询:db.inventory.find( { status: "A", qty: { $l

Oracle 学习第四篇

Day04-Oracle查询基础 学习目标: ? 修改数据 ? 删除数据 ? 简单查询 ? 条件查询 ? 分组查询 oracle修改数据 使用update语句修改表中数据. Update 语句基本语法: update 表名 set 列名=表达式 [,列名2=表达式 2,...][where 条件]; 注意事项: 1.update语法可以用新值更新原有表行中的各列: 2.set子句指示要修改哪些列和要给予哪些值: 3.where子句指定应更新哪些行.如没有 where子句,则更新所有的行.(特别小

初步学习Django-第四篇:views.PY文件详解

http请求中产生的两个核心对象: http请求:HttpRequesthttp响应:HttpResponse 所在位置:from django.http import HttpRequest,HttpResponse 1.HttpRequest:HttpRequest对象的属性: Attribute Description path 请求页面的全路径,不包括域名-例如, "/music/bands/the_beatles/" method 请求中使用的HTTP方法的字符串表示.全大写

Django学习之配置篇

Django之路:安装与配置 MTV Model Template View 数据库 模版文件 业务处理 了解Django框架,功能齐全 一.安装Django&Django基本配置 安装Django pip3 django 配置Django 1.配置Django环境变量 D:\Program files\python37 D:\Program files\python37\Lib\site-packages\django\bin D:\Program files\python37\Scripts

Django 学习第四天——Django 模板标签

一.模板标签: 作用:标签在渲染的过程中提供任意的逻辑:例如 if for...in... 等 标签语法:由 {% %} 来定义的:例如:{% tag %}xxx{% endtag %} 常用标签: if 标签: 可以使用 and or in not == != <= >= 来进行判断 {% if a == "xx" %} # == 号两边必须要有空格 判断成立执行的语句 {% elif a == "zz" %} 判断成立执行的语句 {% else %}

Java 学习第四篇--Java环境JAVA_HOME 和 classpath的理解

1.JAVA_HOME 环境变量 JDK 的目录 用于定位JDK的bin目录  有利于版本的变更 eg:   在Path的值后加上 ;%JAVA_HOME%\bin 创建环境变量JAVA_HOME  D:\Program Files\Java\jdk1.8.0_101 2. classpath 其作用就是用来定位和设置  class文件的检索位置或者存放位置  一般不需要配置  且 配置时要慎重 其配置具有先后的顺序关系 eg:    classpath   .;D:\Develop     先

Hadoop学习---第四篇Mapreducer里的Partitioner

Partitioner就是对map输出的key进行分组,不同的组可以指定不同的reduce task处理: Partition功能由partitioner的实现子类来实现 每写一段代码都会加深理解,程序里记录了自己的理解 FlowBean类源码: package cn.zxl.flowcountpartitioner; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import o