Django--post提交表单内容
本节目标:
①、提交表单内容
②、通过客户端提交表单新增一篇文章
③、通过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提交表单内容的更多相关文章
- Django:提交表单时遇到403错误:CSRF verification failed
Django:提交表单时遇到403错误:CSRF verification failed 问题: 提交表单时遇到403错误:CSRF verification failed 解决方案: 在表单界面ht ...
- 4 django系列之HTML通过form标签来同时提交表单内容与上传文件
preface 我们知道提交表单有2种方式,一种直接通过submit页面刷新方法来提交,另一种通过ajax异步局部刷新的方法提交,上回我们说了通过ajax来提交文件到后台,现在说说通过submit来提 ...
- 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 ...
- jquery通过submit()和serialize()提交表单
<script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交 ...
- 搭建简单Django服务并通过HttpRequester实现GET/POST http请求提交表单
调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模 ...
- django中form表单的提交:
一,关于表单: 表单在百度百科的解释: 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...
- A、B同时打开一个页面进行同一条数据库记录进行修改,A修改完成后提交表单,A修改的数据保存完成后;当B也修改完成后,提交数据进行数据修改。此时B修改的内容会覆盖A修改的内容,请问如何避免?
A.B同时打开一个页面进行数据中的一条数据进行修改,A修改完成后提交表单,数据修改保存完成后B开始页面也修改完成,开始提交进行修改.此时B修改的内容会覆盖A的内容,请问如何避免? 通过搜索和我个人总结 ...
- 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 ...
- 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 ...
随机推荐
- Gcc 命令大全
gcc这条命令用来将源代码生成可执行程序,下面来看一下gcc的常用选项. 1.无选项编译链接 例:命令:gcc test.c //会默认生成a.out可执行程序 2.-E: 进行预处理和编译,生成汇编 ...
- 解决系统中大量的TIME_WAIT连接
今天发现网站特别卡!! 查看网络连接数: netstat -an |wc -l netstat -an |grep xx |wc -l 查看某个/特定ip的连接数 netstat -an ...
- IntelliJ IDEA 的默认文件编码
建好项目,首先注意改项目默认编码 File->Settings(快捷键Ctrl+Alt+S)->Editor->File Encodings File->Other Setti ...
- js中的 Date对象 在 IOS 手机中的兼容性问题
项目中有个时间相关的需求,很自然的用到了 js 中的 new Date() 获取时间,浏览器使用模拟手机模式访问没有问题,但是真机测试时发现,ios系统的手机无法显示时间. 定位问题发现是 new D ...
- HDU-1171 Big Event in HDU(生成函数/背包dp)
题意 给出物品种类,物品单价,每种物品的数量,尽可能把其分成价值相等的两部分. 思路 背包的思路显然是用一半总价值当作背包容量. 生成函数则是构造形如$1+x^{w[i]}+x^{2*w[i]}+.. ...
- Python:正则表达式(一):search()、match()、findall() 的区别
以前一直觉得正则很难,不会用,今天试验了几个方法,整理总结了一下,简洁明了. 简单来讲,正则就是 提取一段特征数据,用(.*?)代替. 自己总结的特点&区别: (.*) 贪婪匹配,会尽可能的往 ...
- 使用Sales_data类
写一段程序程序实现求两次交易相加结果的功能.程序的输入是下面这两条交易记录: 0-201-783456-X 3 20.00 0-201-783456-X 3 25.00 程序的结构如下: #inclu ...
- 项目Alpha冲刺(1/10)
1.项目燃尽图 2.今日进度描述 项目进展 熟悉Android Studio的基本使用,阅读代码规范 问题困难 学习中存在许多问题. 心得体会 应该选择一个自己熟悉的平台进行开发. 3.会议照片 4. ...
- Java基础11-List;Set;Map
作业解析: remove(int index); //删除指定位置的元素 List list = new ArrayList(); list.add("s1"); list.add ...
- WPF UserControl响应窗体的PreviewKeyDown事件
目的 在UserControl页面实现通过快捷键打开新建窗口 实现过程 监听Window窗体的PreviewKeyDown 其实,使用KeyDown事件也是可以的 页面代码 <Window x: ...