写在前面:Python和Django入门刚刚一个月的萌新,编程2年,前端基础0。边学,边做,边写,这份笔记仅作为Django快速入门,包含了很多我自己的理解。里面可能出现的Python语句,仅仅是可以实现其功能,如有更简洁的代码,跪求指出!!工具:Anaconda 3,Django 1.10,Mysql,notepad语言:Python,JS,CSS,Jquery,Ajax (都是现学现用,并没有深入研究)在开始新的学习之前,还是想先花一点功夫梳理下Django的工作流程。上面这张图主要展示了用户 “打开网页” 这个动作背后的信息流程。在那之后,我们更关注网页内容和用户的交互,比如,点击一个按钮,选择一个日期,填写一个数字,等等一系列动作,会触发网页的哪些变化。本篇会在不涉及与数据库交互的前提下,简单介绍交互指令 get 和post 在Django中的应用。预计下一篇会在此基础上学习异步刷新(Ajax)。接下来的笔记简单!粗暴! 贴源码!以下给出的都是简版的示例,源代码全部检验过可以运行,想要实现更复杂的功能,建议深入研究。一、get 一个确定按钮1、编写html文件‘templates/app001/test1.html’‘templates/app001/firstpage.html’想要实现的功能:点击“确定”按钮,运行一段程序,跳转一个页面。注意:action="/app001/test1/",是指点击按钮后,向服务器传递了一个URL。2. 编写urls‘app001/urls.py’3.编写views‘app001/views.py’ 4.运行服务器注意比较按钮提交之后,页面URL的变化!!使用get方式提交,发生了页面的跳转,从app001跳转到了app001/test1/……,这个跳转的地址,我们在action中规定了。但是后面跟着的一串 ?subject=Submit 这是什么鬼???为了更好的理解这个问题,我们尝试着用get提交一些文字信息。二、用 get 打个招呼1.修改html‘templates/app001/test1.html’Urls .py文件不变,这时我们看到页面:想要实现的效果,提交填写的姓名,运行一段代码,返回一个页面。2.修改views‘app001/views.py’ 3.运行服务器现在,让我们回过头看看发生神马。这个 url 向服务器提交了一个参数。紧跟在问号?后面。这个参数名,在中定义了。等号=后面是我们通过输入框提交的参数,在views里通过 request.GET.get('name1')获得。三、用 post 打个招呼终于轮到get的好兄弟,post 登场了。1.修改html‘templates/app001/test1.html’ 其中 {% csrf_token %}是出于网站安全性考虑,跨站点伪造请求保护。另外修改了action地址"/app001"。2.修改urls‘app001/urls.py’ 修改app001首页与index1的关系3.新建formspost请求经常和form一起使用,在提交请求时,检查内容是否符合格式要求。如经常会遇到的要求密码至少含有6位小数,等等。新建“app001/forms.py”作为演示,这里未对name1值做特殊要求。4.修改views首先,我们检查是否收到post请求,如果未发出,则展示test1界面,不传递变量。如果收到post请求,则检查收到的参数是否符合form的规范,符合规范,传递变量,刷新页面。5.运行服务器注意到,在提交参数前后,app001界面实际上使用的是同一个html。输入后,页面的地址并没有发生变化。四、get 和 post 的区别最后简单说一下二者最明显的区别:提交get指令后,页面发生了跳转;而使用post指令,可以仅刷新页面。get指令利用url传递了参数,post指令并没有改变url。两者详细的区别,可以参考 HTTP中GET与POST的区别 这篇文章。好了,今天的笔记就到这里,希望对你有用:)