本文主要是介绍学习PHP和XML Django写简单POST 2016.03.23回顾,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
0x01. 继续学习了php对xml交互,html部分主要是一个select标签,option标签不同艺术家名字,一个提示文本区域根据选择的艺术家显示对应的唱片信息;xml部分是一个唱片信息的大集合,js部分负责向ajax部分,向后台get唱片信息,后台php做处理,根据获得的艺术家名字,加载xml文件,根据xml DOM搜索方法找到艺术家的唱片,把唱片信息输出在固定的文本区域p标签之中,要注意的一个地方是xml DOM,元素标签的下一层是文本标签,也就是文本被看作是独立的标签,要用->childNodes->item(0)->nodeValue去取值
0x02. 提供web接口,写好了用django接受post的逻辑,逻辑比较简单,urls.py负责URL配置,配好url,第二个参数是app.views.function,后面可以配置name值方便复用,URL和views对应,views中写好url配置的方法,具体逻辑,方法传进去一个request,获取对应的参数名,封装参数HttpResponse返回给前台
@csrf_exempt
def model(request):id = request.POST['national_id']mydict = {'national_id':id}return HttpResponse(json.dumps(mydict),content_type='application/json')
这就是一个url和views的逻辑,就完成了一个post,但是用django发现会403 forbiden,因为django需要一个csrf_token,如果做成接口,对方肯定不会有csrf_token,所以要from django.views.decorators.csrf import csrf_exempt,引入一个csrf_exempt修饰符来修饰post接收函数,使得可以不需要csrf_token,如上面代码所示;另外一方面,如果前台自己写一个简单的表单提交post,写好一个html表单中放进app/templates/app/下,同样也是写好url配置,然后在views中渲染这个模板html,
def index(request):return render(request, 'index.html')
HTML表单可以加入一个csrf token,负责服务端默认开启csrf校验,直接提交会403
<!DOCTYPE html>
<html>
<body>
<p>输入身份证号查询审批结果</p>
<form action="/model/" method="post">{% csrf_token %}national_id: <input type="text" name="national_id"><br><input type="submit" value="提交">
</form>
</body>
</html>
这个将在后台生成一个隐藏的表单域,包含了csrf_token的值,将在submit的时候发送给后台。
我现在的一个问题是csrf_token服务端是在哪个部分进行校验的?这部分我自己编写后端逻辑所不需要考虑的!
0x03. 继续去解决扣款短信的问题,经过多方讨论,给了相关部分一个方案,我这边确实是无能为力了。反正这个解决问题就是不要怕麻烦,多问,多讨论!
0x04. 晚上回家写好了募捐文案发布在了主页上,还是陆续收到了几笔捐款,给了我一定的动力继续把站点做好,关于合作那方面昨天晚上让我思考了很久,我觉得该怎么说就怎么说,不要怕尴尬,一是一二是二,在那里犹豫不决,欲言又止,简直是浪费时间!本来昨天晚上应该可以干更多的事情!
这篇关于学习PHP和XML Django写简单POST 2016.03.23回顾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!