[oldboy-django][1初始django]web框架本质 + django框架 + ajax
web框架本质
浏览器(socket客户端)
- 发送请求(ip和端口,url http://www.baidu.com:80/index/)
- GET
请求头(数据请求行的url上: Http1. /index?nid=&name=alex)
请求体(空)
- POST
请求头
http1. /index?p= 或者 http 1.1 /index/
请求体
包含数据 接收响应
- 普通响应
--页面直接显示
-- 双方closed - 重定向响应
-- 再发起一次http请求 服务器(socket服务端)
启动服务器,并监听ip和端口,等待用户连接
接收请求,处理并返回
- 普通返回(字符串) # render, HttpResponse
-- 响应头
-- 响应体 - 重定向返回(只有响应头,响应体为空)
-- 响应头
LOCATION: "http://www.baidu.com"
django web框架
创建Project
admin-django startproject mysite
配置settings.py
- 模板路径TEMPLATES DIRS
- 静态文件路径 STATIC_URL, STATICFILES_DIRS
- 额外配置:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', # 这个本来不是注释的
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
路由关系
url -> 函数
视图函数
def login(request):
request.method
request.POST(获取请求体数据)
request.GET (获取请求头url的数据)
return HttpResponse("字符串")
return render(request, "login.html", {})
获取模板 + 数据 进行渲染(成字符串)
HttpResponse(字符串)
return redirect("要跳转的网址")
模板渲染
{{ msg_str }}
{{ msg_list. }}
{{ msg_dict.key }}
{% for item in msg_list %}
{% endfor%}
{% if > %}
{% endif %}
ajax(特殊的向后台发数据方式) --单独前端技术
- 引入jquery
- $.ajax({
url: '提交的地址',
type: 'post', // 提交的方法
data: {'k1':'v1, 'k2':'v2'},
success: function(data){
// 当服务器处理完成后,回调函数
}
})
- ajax 和 form区别
-- form表单提交,页面会刷新(不能满足需求:数据错误,不能保留对话框)
-- ajax提交页面不刷新,实现上面需求
-- ajax存在缺点:数据对的时候,服务器不能实现跳转,只能用前端实现跳转
location.href = "/classes/"
提交数据
模态对话框(ajax)(登录框)
- 少量输入框
- 数据少
新url方式(京东登录框,要打广告)
- 操作多
- 大量的数据
[oldboy-django][1初始django]web框架本质 + django框架 + ajax的更多相关文章
- Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器
目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ...
- Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Web框架本质及第一个Django实例 Web框架
Web框架本质及第一个Django实例 Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...
- WEB框架本质和第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 总的来说:Web框架的本质就是浏览 ...
- Django之Web框架本质及第一个Django实例
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- Django框架----Web框架本质
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...
- django基础一之web框架的本质
一 web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响 ...
- Django:web框架本质
一,web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 1,自定义web框架 impo ...
- Django 基础 web框架本质
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. import socket sk ...
随机推荐
- cms-数据库设计
业务相关的3张表 1.类型表: CREATE TABLE `t_arctype` (`id` int(11) NOT NULL AUTO_INCREMENT,//id`typeName` varcha ...
- LeetCode ZigZag Conversion(将字符串排成z字型)
class Solution { public: string convert(string s, int nRows) { string a=""; int len=s.leng ...
- [VC]strcpy和strncoy的区别
第一种情况:char* p="how are you ?";char name[20]="ABCDEFGHIJKLMNOPQRS"; strcpy(name,p ...
- 2013年6月 最新Godaddy(持续更新)
关于Godaddy Godaddy 是世界上最大的域名注册商,Godaddy管理的域名超过5000万.同时,Godaddy也是最大的主机服务商,据多家监测机构显示,放置在Godaddy上的网站数量已经 ...
- 增强的格式化字符串format函数
http://blog.csdn.net/handsomekang/article/details/9183303 自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓 ...
- VC-基础-WebBrowser控件中弹出新网页窗口
用webbrowser控件浏览网页时,常弹出新的网页窗口,若不做任何控制的话,会在默认浏览器(一般是IE)中打开,这样就在新的窗口打开了,原程序就很难控制了,且存在webbrowser控件和IE的se ...
- Python02 变量
变量 因为Python是弱变量类型编程语言,所以变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 变量 ...
- Luogu [P1334] 瑞瑞的木板(手写堆)
其实这个题完全不需要用手写堆,只需要一遍遍sort就行了…… 但是! 为了练习手写堆,还是用手写堆做了. 在做本题之前,如果你没有什么思路的话,建议先做Luogu的合并果子. 好,假设你已经做过了合并 ...
- Ubuntu16.04 hadoop 伪分布式 的文件配置
首先需要完成java环境的配置,这里就省略了. 完成 hadoop 伪分布(pesudo distribution),只需配置下面 五 个文件即可: hadoop-env.sh core-site.x ...
- MySQL 如何生成日期表
MySQL 如何生成日期表 在开发过程中,经常会遇到统计问题,通常交易信息都不是连续的,此时,统计出来的数据都是不连续的,所以提前生成一个时期表,当没有交易数据的时候填充0,就可以了,下面是生成日期表 ...