赞
踩
flask 本身就是一个web框架,完全可以通过内嵌的方式使用python flask框架完成 web 页面的开发。
因为现在都讲究一个前后端分离,那为什么要前后端分离呢,且听我慢慢道来。
对于前后端分离的应用场景,不是所有的场景都适合,但是大多数项目都能够通过前后端分离来实现。由于我主要从事企业级后台应用的前端开发工作,个人认为对于后台应用的开发来说,前后端分离带来的利是远大于弊的。
大多数后台应用我们都可以做成SPA应用(单页应用),而单页应用最主要的特点就是局部刷新,这通过前端控制路由调用AJAX,后台提供接口便可以实现,而且这样的方式用户体验更加友好,网页加载更加快速,开发和维护成本也降低了不少,效率明显提升。同样的,在展示类网站和移动APP页面中前后端分离也同样试用。前后端不分离的情况下,服务端要单独针对Web端做处理,返回完整HTML,这样势必增加服务端的复杂度,可维护性差,而web端需要加载完整的HTML,一定程度上影响网页性能,这对于移动端性能为王的地方非常的不友好。
随着前端技术的发展和迭代,前端MVC框架应运而生,利用目前主流的前端框架,如React、Vue、Angular等我们可以轻松的构建起一个无需服务器端渲染就可以展示的网站,同时这类框架都提供了前端路由功能,后台可以不再控制路由的跳转,将原本属于前端的业务逻辑全部丢给前端,这样前后端分离可以说是最为彻底。
# -*- coding: utf-8 -*- # /usr/bin/python3 from flask import Flask, request, jsonify, make_response from flask_cors import CORS import pymysql import urllib, urllib.request, sys import ssl import json import pprint # from urllib import parse,request coon = pymysql.connect(host='127.0.0.1',user='root',password='123456',db='python',autocommit=True) app = Flask(__name__) CORS(app, resources=r'/*') @app.route('/arp',methods=['get','post']) def arp2(): header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'} url='http://rap2api.taobao.org/app/mock/281909/place' req = urllib.request.Request(url,headers=header_dict) res = urllib.request.urlopen(req) res = json.loads(res.read()) return res @app.route('/userList',methods=['get','post']) def userList(): header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko'} url='http://rap2api.taobao.org/app/mock/281909/userList' req = urllib.request.Request(url,headers=header_dict) res = urllib.request.urlopen(req) res = json.loads(res.read()) return res @app.route('/select',methods=['get','post']) def json_contents(): global coon coon.ping() cursor = coon.cursor() cursor.execute("select * from asp") data = cursor.fetchall() return jsonify(data) @app.route('/miss',methods=['get','post']) def json_miss(): try: miss = request.form['miss'] except Exception as e: miss = request.args.get('miss') global coon coon.ping() cursor = coon.cursor() cursor.execute("select * from asp where id=%s",miss) data = cursor.fetchall() return jsonify(data) @app.route('/list',methods=['get','post']) def json_list(): try: ids = request.form['id'] except Exception as e: ids = request.args.get('id') global coon coon.ping() cursor = coon.cursor() cursor.execute("select * from list where flag=%s limit 1",ids) data = cursor.fetchall() return jsonify(data) @app.route('/vs',methods=['get','post']) def json_vs(): # 访问量接口 global coon coon.ping() cursor = coon.cursor() cursor.execute("select * from t_vs") data = cursor.fetchall() cursor = coon.cursor() sql = "update t_vs set vs=%s where id=1" cursor.execute(sql,data[0][1]+1) data1 = cursor.fetchall() return jsonify(data) if __name__=="__main__": app.run(port=887,debug=True,host='0.0.0.0')
整个项目简单的介绍了一些基本接口的编写,启动后通过当前ip+端口号的形式访问,要访问的路径则为@app.route(’/vs’,methods=[‘get’,‘post’])中/vs,例:127.0.0.1:887/vs。
CORS(app, resources=r’/*’) 是解决跨域问题的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。