学习PHP和XML Django写简单POST 2016.03.23回顾

4 篇文章 0 订阅

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. 晚上回家写好了募捐文案发布在了主页上,还是陆续收到了几笔捐款,给了我一定的动力继续把站点做好,关于合作那方面昨天晚上让我思考了很久,我觉得该怎么说就怎么说,不要怕尴尬,一是一二是二,在那里犹豫不决,欲言又止,简直是浪费时间!本来昨天晚上应该可以干更多的事情!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值