首页 > 编程知识 正文

web网页制作代码(web应用)

时间:2023-05-06 02:09:23 阅读:90216 作者:3718

作为Java的序文,写代码以来很长一段时间里,尝试了各种各样的技术。 首先从ssh1(spring、Struts1、Hibernate )过渡到ssh2 ) spring、Struts2、Hibernate ),谁会想到Struts的漏洞会频繁出现,S2的地位很快就会变成sprinate 虽然没想到随着时间的推移,MyBatis也逐渐被h的江湖地位所取代,但SSH2至今仍在使用SSM(Spring、SpringMVC、MyBatis )的项目,但现在眼前却变成了spring家的

我们知道无论是SSH还是SSM,构建时都会依赖很多JAR包和块代码,但是今天我觉得用无心的flask试试,提供WEB服务真的很简单。

什么也别说,先发代码,去掉空行,就真的只有7行代码了!

从闪存导入闪存

应用程序=闪存(_名称_ _ )

@app.route('/' ) ) )。

def hello_world () :

'幸运的话真好。'

if __name__=='__main__':

苹果公司()。

快跑,看看是不是那种事。

访问浏览器探索虚实后,意外地可以访问。

1. Flask 是啥?

简单理解,吹牛。 Flask实际上是一个用Python编写的可定制的轻量级网络APP微框架,其特点是灵活性、轻量级和易用性。

2. 小插曲凑起来,如何发送 JSON 请求?

工作中使用过很多模拟订单的工具。 我曾经用自己开发的Jar包进行过订单模拟。 我用浏览器插件模拟过订单,最舒服的是postman。 请花半个小时一起体验。

首先根据下载链接完成安装。

3559 www.get postman.com /下载/

然后,打开页面配置请求标头,向标题添加密钥为Content-Type、值为application/json的密钥和值对。

然后,输入想发送给委托体Body的JSON信息,点击Send就可以了!

Postman分钟就掌握了。 点击send,我们今后也会回到主题,继续探索Flask。

3. 如何获取 JSON 请求?

Flask有多种方法获取请求参数。 请先在request.get_json (中尝试获取。

从闪存导入闪存

从闪存导入请求

应用程序=闪存(_名称_ _ )

@app.route('/',methods=['post'] )。

def hello_world () :

# #方式如果接受JSON请求参数

predict_data=request.get_json (

app.logger.debug (请求数据% s,预测数据) ) ) ) ) ) ) ) )。

合约标识

= predict_data['contract_id'] app.logger.debug("contract_id %s", contract_id) return 'flask 真好!' if __name__ == '__main__': app.debug = True app.run()

用 Postman 发送 JSON 报文,点击 send,我们会看到控制台日志输出发现传入的 JSON 数据正常获取,真简单!

DEBUG in predict_server: request data {'contract_id': 'c90121010'}

DEBUG in predict_server: contract_id c90121010

趁热乎劲,再尝试一下 request.get_data(),实践中发现此种就没有想象的那么任性了,出了一堆的幺蛾子,后面会列出具体的问题。

from flask import Flask from flask import request import json app = Flask(__name__) @app.route('/', methods=['post']) def hello_world(): # 方式二 接受JSON请求参数 predict_data = request.get_data() app.logger.debug('request data %s', predict_data) predict_data = json.loads(predict_data) contract_id = predict_data['contract_id'] app.logger.debug("contract_id %s", contract_id) return 'flask 真好!' if __name__ == '__main__': app.debug = True app.run()

代码修改完,flask 会进行实时检测文件是否修改,然后会进行 reloading,真棒!我们直接用 postman 继续发送请求即可。

DEBUG in predict_server: request data b'{nt"contract_id":"c90121010"n}'

DEBUG in predict_server: contract_id c90121010

依据日志输出,发现JSON请求报文获取正常。

4. 牛逼的业务咋实现?

开始进行非常牛逼的业务处理,此处用一句输出代表了所有

print('进行了非常牛逼的业务处理')

5. 响应的内容如何返回 JSON?

Flask 做的真周到,又帮我提供了 jsonify 函数供我们处理返回的序列化 JSON 数据。

# 封装返回参数 JSON 格式

ret_data = {'ret_code': '0000', 'ret_msg': '成功'}

ret_data = jsonify(ret_data)

6. 整体回顾跑跑看

完整的示例代码。

from flask import Flask, jsonify from flask import request app = Flask(__name__) @app.route('/', methods=['post']) def hello_world(): # 接受 JSON 请求参数 predict_data = request.get_json() print('接收请求参数: {0}'.format(predict_data)) # 业务处理 print('进行了非常牛逼的业务处理') # 封装返回参数 JSON 格式 ret_data = {'ret_code': '0000', 'ret_msg': '成功'} ret_data = jsonify(ret_data) print('响应信息: {0}'.format(ret_data)) return ret_data if __name__ == '__main__': app.run()

借助 postman 再一次发送请求。

看看服务的日志,参数接收正常、业务处理完毕、响应信息封装,一切都是那么的自然。

出现了哪些幺蛾子?

OSError: [Errno 48] Address already in use

解答:把 5000 端口的进程直接杀掉就行,mac 下用 lsof -i:5000 看哪个进程在占用 5000 端口;然后用 kill -9 PID 把对应 PID 的进程干掉。

TypeError: byte indices must be integers or slices, not str

解答:当predict_data=request.get_data()获取数据时,然后直接取 predict_data['contract_id'],因为未转变成 JSON,所以会报此种错误。

AttributeError: 'bytes' object has no attribute 'read' (json.load)

解答:当 json.loads(predict_data) 中的loads漏掉s误写成 json.load(predict_data) 时,会提示此种错误。

7. 写在最后

好了,技术的更新迭代就是快,几分钟的简单分享,主要让你接触并认识一下 flask,并播了一个 postman 的插曲,希望你能够喜欢吧。

最后阿里新六脉神剑中的三脉送给大家:今天最好的表现是明天最低的要求;此时此刻非我莫属;认真生活快乐工作!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。