day68
自己写Web框架
socket服务端(我们自己写的代码)
1. 起服务(IP:PORT),等待链接(监听)
4. 服务端接收请求
5. 返回响应
请求和响应 两个名词
GET请求
请求头
HTTP1.1 /index/ 200OK
\r\n
\r\n\r\n
请求体
POST请求
请求头
HTTP1.1 URL 200OK
\r\n
\r\n\r\n
请求体
username:alex
passwd:dashabi
socket客户端(浏览器)
2. 浏览器连接服务器
3. 发送请求
Django
- 下载安装 pip install django
- 创建项目 django-admin startproject mysite
PyCharm创建项目 --> File->new project -> 左侧选Django ->右侧选项目存放路径
- 目录结构
-mysite
-mysite
-urls.py 配置对应关系 URL-->函数
-settings.py 配置文件
-wsgi.py socketserver
-views.py 自己写的函数统一放到这里
__init__.py
-templates 存放模板文件的(html文件)
-index.html
-class_list.html
-static
-bootstrap
-css
-bootstrap.min.css
-fonts
-js
-jQuery.3.2.1.min.js
-manage.py 管理你Django项目的(有很多命令)
python manage.py runserver IP:PORT
- 修改配置文件
-模板文件夹路径(TEMPLATES=[..., "DIRS": [os.path.join(BASE_DIR, "templates")
-注释掉一个CSRF的中间件
-静态文件路径
STATIC_URL = "/static/" 在HTML文件上就用这个开头来引用静态文件
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
新手必备三件套:
from django.shortcuts import
-HttpResponse("OK") --> 你写什么我就回什么(字符串)
-render(request, "index.html", {"name": "alex"}) --> 渲染(字符串替换)
-redirect("/你要跳转的URL/")
request:
自己写函数里面的形参(代表了所有的请求相关的内容)
request.method --> 请求的方法具体是什么
request.GET
url里面有参数的时候
request.GET.get()
request.POST
获取请求体里面的数据
request.POST.get()
模板语言:
{{变量名}}
{% for i in class_list %}
{{i.name}}
{{ i.id }}
{% endfor %}
{% if 条件 %}
要做的事儿
{% else %}
要做的事儿
{% endif %}
AJAX
偷偷的发请求(页面不刷新)
区别于form表单提交的方式
基于jQuery的AJAX
$.ajax({
url: "/URL/",
type: "POST",
data: {"name": "alex"},
success: function(data){
// data就是后端发过来的数据字符串
// 前端做反序列化
var dataObj = JSON.parse(data) // 把收到的字符串反序列化成对象
dataObj["status"] // 就可以拿到具体的值
dataObj.status
}
})
后端序列化:
dic = {"status": 0, "msg": "哈哈"}
import json
str = json.dumps(dic)
return HttpResponse(str)
1. mysql
2. python
3. 模板语言
4. JS(jQuery)
5. BOOtstrap
6 HTML
今日内容:
AJAX编辑班级
AJAX添加学生信息
页面加载的时候就把模态框里面的select渲染好
AJAX编辑学生信息
如何设置select的默认值
如何取消元素默认的事件
return false;
SweetAlert插件做一个删除二次确认的例子