Django之学员管理三
web框架的本质:
本质是客户端和服务端的交互。用socket实现。
socket客户端(浏览器)
2、发送ip和端口,http://www.baidu.com:80/index/ (http://www.baidu.com:80) 为ip和端口,(/index/ )是url。客户端往服务端发送请求时,是要分post和get两种请求方式。
4、接受响应,普通的响应就是正常的拿到响应体浏览器是处理呈现,而重定向是要再发一次http请求,进行一次跳转才可以。
socket服务端(服务器)
1、服务端socket先运行起来进行监听 while循环来持续监听ip和端口,等待客户连接。
3、接受请求,处理并返回相应的结果,返回的本质是一堆字符串。返回的有响应头和响应体。还有一种响应方式,是重定向返回,在重定向返回里是没有响应体的,只有响应头。在响应头里有一区别是多了一个location,在location里定义要响应跳转的url。
django的web框架:
a、创建project:django-admin startproject mysite
b、配置:模板,静态文件,csrf
c、路由关系:url-》函数
d、视图函数:
def index(request):
获取的:request.method
request.POST
request.GET
返回的:return redirect("url")
return render(request, "模板路径", { } )
return HttpResponse("字符串")
e、模板渲染:{% for %} 和 {% if %}
Ajax的本质流程:
基于jQuery实现的ajax,
$.ajax({
url:"",
type:"",
data:{k1:"v1"},
success:function(arg){
}
})
小知识点:在onclick的前面加一个href的url,是先执行onclick的事件,在跳转到href的url。但是如何在ajax里的对应事件执行完,返回return False,那么在href里的url就不在执行啦。这个方法用在form表单中。
对班级表实现ajax方式的编辑删除操作(对话框的单表的编辑操作):
注意点:一定要注意前后端的标签id是否一致,和$(#' ') 里面要拿取的标签id前的#符号,否则会找不到值,并且前端不会有报错。
前端操作代码:
classes classes_list
ID | 班级名称 | 操作 |
---|---|---|
{ { item.nid }} | { { item.title }} | 删除 | 对话框编辑 | 编辑 |
views.py 的对应函数:
def modal_edit_classes_ajax(request): ret = {"status":True,"message":None} #当try代码块出现问题,可以用这种方式收集错误信息 try: nid = request.POST.get("nid") # 拿id print(nid) content = request.POST.get("content") #拿内容 print(content) sqlheper.modify("update classes set title=%s where nid=%s",[content,nid,]) print("1") except Exception as e: ret['status'] = False ret['message'] = "处理异常" # ret['message'] = str(e) #异常对象的内容,用字符串的形式拿到。 return HttpResponse(json.dumps(ret)) #用json.dumps的方法使的json将数据转成字符串,在发给前端