网站建设定制开发Python前后端交互( Flask & Ajax )

网站建设定制开发本文是自己学习Python记录使用,网站建设定制开发之前没有学习过Python任何框架,前端也是简单学了一下,如哪里有问题,还望大家批评改正。

1. 前端

1.1 HTML布局

这个就不用说啥了,登录长啥样大家都知道,各位根据自己情况调整样式吧,我这里放直接最基本的输入框了。

  1. <div>
  2. <input type="text" id = "userId">
  3. </div>
  4. <div>
  5. <input type="password" id="password">
  6. </div>
  7. <button onclick="login()">login</button>

1.2 JS &

如下所示

  1. function login(){
  2. $.ajax({
  3. url:"http://localhost:8899/login",
  4. type:"post",
  5. dataType:"json",
  6. //data为要传递给后端的数据,使用JSON.stringify()转换为json格式
  7. data:JSON.stringify({
  8. userId: $("#userId").val(),
  9. password: $("#password").val()
  10. }),
  11. success:function (data){
  12. alert("登录成功")
  13. console.log(data)
  14. console.log(data.status)
  15. console.log(data.time)
  16. },
  17. error:function (){
  18. alert("登录失败")
  19. console.log("***********")
  20. }
  21. })
  22. }

2. 后端

本文只是以登录功能做例子来实现前后端交互,因此不涉及与数据库已有用户信息匹配等判断过程,成功获得前端信息则认为“登录”成功。

1.1 引包 & 固定结构

根据需要import,图省事直接import *

  1. from flask import *
  2. import json
  3. app = Flask("__name__")
  4. if __name__ == '__main__':
  5. app.run(port=8899) # 此处可自定义使用端口

1.2 解决跨域问题

经典前后端交互问题,这里参考的一位博主的文章:

  1. @app.after_request
  2. def cors(environ):
  3. environ.headers['Access-Control-Allow-Origin']='*'
  4. environ.headers['Access-Control-Allow-Method']='*'
  5. environ.headers['Access-Control-Allow-Headers']='x-requested-with,content-type'
  6. return environ

1.3 json 数据接收&回复

方法 post 

接收前端的数据:    request.get_data()获取字符串,json.loads()转化为json

给前端回复json:     jsonify() 将数据转化为json格式

  1. @app.route('/login', methods=['POST'])
  2. def login():
  3. # 获取前端json数据
  4. data = request.get_data()
  5. print(data)
  6. json_data = json.loads(data)
  7. print(json_data)
  8. Id = json_data.get("userId")
  9. password = json_data.get("password")
  10. print("userId is "+Id)
  11. print("password is "+password)
  12. # 给前端传输json数据
  13. info = dict()
  14. info['status'] = 'success'
  15. info['time'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
  16. return jsonify(info)

3. 最终结果

3.1 前端控制台

alert:

控制台json数据

3.2 后端控制台

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发