本节目标:
①、提交表单内容
②、通过客户端提交表单新增一篇文章
③、通过Django的forms组件来完成新增一篇文章
=======提交表单内容========

1、前端html:login.html

<div>
<form method="post">
username:<input class="" name="username" type="text">
password:<input class="" name="password" type="password">
<input type="submit" value="确定">
</form>
</div>

2、新增一个视图函数:

def login(request):
username=request.POST.get('username','');------------>POST.get('',''),来获取提交值
password=request.POST.get('password',''); return render(request,'login.html',{
'username':username,
'password':password
})

3、配置路由

项目级路由
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.blog_urls')),
path('login/',include('blog.blog_urls'))
] 应用级路由
urlpatterns = [

path('get_article_list',get_article_list),
path('get_article',get_article),
#path('get_detail',get_detail)
path('get_detail/<int:article_ID>',get_detail),
path('login',login) ]
 

4、调试---出现一个403问题

产生原因:CSRF,百度一下发现这是跨站请求伪造,其实就是Django已经帮我们做了CSRF验证,我们在做POST提交时候需要加上csrf_token(就是一个随机码)来完成csrf验证

解决方式:修改html代码

  <form method="post">
{%csrf_token%
}-----------a用来验证csrf的,原因未知,加上即可
username:<input class="" name="username" type="text">
password:<input class="" name="password" type="password">
<input type="submit" value="确定">
</form>

5、最终调试结果---成功

======通过客户端提交表单新增一篇文章======
#新增一个帖子
def add(request):
article_title=request.POST.get('article_title',"");
article_prief=request.POST.get('article_prief',"");
article_content = request.POST.get('article_content', "");
add_article=Article(article_title=article_title,article_prief_content=article_prief,article_content=article_content);
add_article.save();
return render(request,'add.html',{
'article_title':article_title,
'article_prief':article_prief,
'article_content': article_content, })

2、html代码

<div>
<form class="navbar-form navbar-left" role="search" method="post">
{%csrf_token%}
<div class="form-group">
<input type="text" class="form-control" name="article_title" placeholder="帖子标题">
<input type="text" class="form-control" name="article_prief" placeholder="帖子小标题">
<input type="text" class="form-control" name="article_content"placeholder="帖子内容"> </div>
<button type="submit" class="btn btn-default">提交</button>
</form> {{ article_content }}
{{ article_prief }}
{{ article_title}}
</div>

3、调试结果----成功

=====通过Django的forms组件来完成新增一篇文章=====

1、

Django--post提交表单内容的更多相关文章

  1. Django:提交表单时遇到403错误:CSRF verification failed

    Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...

  2. 4 django系列之HTML通过form标签来同时提交表单内容与上传文件

    preface 我们知道提交表单有2种方式,一种直接通过submit页面刷新方法来提交,另一种通过ajax异步局部刷新的方法提交,上回我们说了通过ajax来提交文件到后台,现在说说通过submit来提 ...

  3. Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have A

    Django:提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you ...

  4. jquery通过submit()和serialize()提交表单

    <script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交 ...

  5. 搭建简单Django服务并通过HttpRequester实现GET/POST http请求提交表单

    调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模 ...

  6. django中form表单的提交:

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

  7. A、B同时打开一个页面进行同一条数据库记录进行修改,A修改完成后提交表单,A修改的数据保存完成后;当B也修改完成后,提交数据进行数据修改。此时B修改的内容会覆盖A修改的内容,请问如何避免?

    A.B同时打开一个页面进行数据中的一条数据进行修改,A修改完成后提交表单,数据修改保存完成后B开始页面也修改完成,开始提交进行修改.此时B修改的内容会覆盖A的内容,请问如何避免? 通过搜索和我个人总结 ...

  8. Django报错:提交表单报错---RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set.

    Django报错:提交表单报错---RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and ...

  9. Ajax提交form表单内容和文件(jQuery.form.js)

    jQuery官网是这样介绍form.js A simple way to AJAX-ify any form on your page; with file upload and progress s ...

随机推荐

  1. The 16th Zhejiang Provincial Collegiate Programming Contest Sponsored E.Sequence in the Pocket(思维题)

    传送门 题意: 给出一个序列,你可以将任意一个数移到最前面: 求最少需要移动多少次,可以是此序列变成非递减序列: 思路: 定义 (ai,aj) 为逆序对 ( i < j , ai > aj ...

  2. cenos7上部署python3环境以及mysqlconnector2.1.5

    本机的python2不要管他,因为可能有程序依赖目前的python2环境,比如yum!!!!! 一.安装python3依赖环境: yum -y install zlib-devel bzip2-dev ...

  3. Linux下配置yum源为阿里云或网易的详解

    一.yum源概述 yum需要一个yum库,也就是yum源.默认情况下,CentOS就有一个yum源.在/etc/yum.repos.d/目录下有一些默认的配置文件(可以将这些文件移到/opt下,或者直 ...

  4. [面试]synchronized

    synchronized 把面试中遇到的问题进行了整理. 本篇文章copy+整理自: 1. http://www.cnblogs.com/lingepeiyong/archive/2012/10/30 ...

  5. [BZOJ 4152][AMPPZ 2014]The Captain

    这道题对费用的规定是min(|x1-x2|,|y1-y2|).如果暴力枚举所有的点复杂度O(n²),n <= 200000,显然爆炸.于是我们要考虑加“有效边”,一个显然的事实是对于两个点,如果 ...

  6. Python——Selenium & Chrome Driver配置

    1.CMD下载安装selenium pip install selenium 2.python运行: from selenium import webdriver browser = webdrive ...

  7. 小米5如何支持AT&T网络运营商

    最近在美帝生活,买了一张H2O的电话卡,但是很不幸,没有办法连接到网络. 在网上翻看了好多帖子,提到说修改APN,但是基本上都没提怎么修改,不知道这些大神都是怎么修改的.于是寻求google帮助,最后 ...

  8. [C++]类成员返回语句 return *this 的理解

    经常会在类似 copy-assignment 的成员函数看到返回语句 return *this ,这类函数通常返回类型是所属类的引用. 类成员函数的隐式指针 class *this const 经过 ...

  9. 命令链接按钮QCommandLinkButton

    继承QPushButton 它的用途类似于单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了 ...

  10. mac charles手机抓包详细教程

    1.官方下载charles 2.查看电脑IP地址 3.Proxy>Proxy Settings>勾选 Enable transparent HTTP proxying  (记住端口号 88 ...