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

2024-02-08 04:08

本文主要是介绍学习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回顾的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689853

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]