web服务的开发功能不是特别复杂,可以考虑使用bottle框架。理由:第一,Python开发效率高!你不相信Python几行就能处理同样的功能?试试java?试试C++?由于这些语言我都用过,用过java的尽量不要用C++,用过Python的尽量不要用java,实在受不了。
先用瓶子框架安装。一个订单,完成。

# pip安装瓶
分享一个pip的问题,我的Python版本很低2.6.6。原来通过安装yum的epel,已经成功安装了一个简单易用的pip。但是我每次用pip命令,底部都会提示升级。
您使用的是pip版本9.0.3,但是版本20.0.2是可用的。
您应该考虑通过“pip安装-升级pip”命令进行升级
我看这个提示没有任何恶意,所以执行了pip安装-升级pip。那么pip指令就不能用了,和升级glibc错误后shell指令ls cd不能执行是一样的效果。而且升级后,想安装回pip的较低版本时,也没有相应的安装包。Yum只能找到20.0.2版本。
Get-pip.py下载后无法成功安装。最后在该地址下载了2.6版本的安装文件,然后成功安装了可用的pip。
安装瓶子成功后,输入Python命令行导入瓶子。不报错,就是成功。我的web服务是一个包含以下代码的文件bottleweb.py
#编码=utf-8
从瓶子进口
导入json
导入MySQLdb #这个例子需要操作数据库,否则就没必要写这行了。估计这个数据库包pip的安装不会成功。我成功地安装了MySQL-python。
导入系统
再装
sys.setdefaultencoding
进口瓶
App = bottle.default_app#需要定义静态资源。如果没有静态资源,可以省略这一行。
#设置vue脚手架时,需要以下两个@hook内容;否则,将报告跨域访问资源的错误。
@hook
定义验证:
请求方法= request.environ.get
HTTP _ ACCESS _ ConTROL _ REQUEST _ METHOD = REQUEST . environ . get
if REQUEST_METHOD == 'OPTIONS '和HTTP _ ACCESS _ ConTROL _ REQUEST _ METHOD:
request.environ['请求方法']= HTTP _ ACCESS _ ConTROL _ REQUEST _ METHOD
@hook
定义启用_cors:
response . headers[' Access-Control-Allow-Origin ']= ' * '
response . headers[' Access-Control-Allow-Methods ']= ' GET,POST,PUT,DELETE,OPTIONS '
response . Headers[' Access-Control-Allow-Headers ']= ' * '
@ route # web服务下静态资源的地址,不含前端静态资源。这些路由和app.route可以省略。
定义状态:

返回静态文件
@app.route
Def js: #我这样写这些目录是因为vue打包后,目录结构在dist中是静态的等等。
返回静态文件
@app.route
定义css:
返回静态文件
@get#返回某个表中的日期,看sql就明白了
def helloins:
db = MySQLdb.connect
游标= db.cursor
sql = "从测试表中选择不同的日期"
打印sql
光标.执行
data = cursor.fetchall
jsondata={}
结果=[]
对于数据中的行:
结果= {}
结果['日期'] =行[0]
结果.追加
jsondata['code']=0
JSON data[' datas ']=结果
Return jsondata #返回json格式。为了方便前端vue接收处理,其实可以返回各种类型。
@get
def helloworld:
返回“你好,世界!”
if __name__ == '__main__ ':
奔跑

在bottleweb.py所在的目录下执行#python bottleweb.py,web服务启动。简单吗?去http://127 . 0 . 0 . 1:2020/test 2020/hello world试试吧。
如果安装MySQL数据库,可以测试test2020/date的url是否能返回结果。
数据库只能有以下数据
首页是这样的。选择某个日期供用户在手机上使用。
前端用vue+vux开发,开发后打包的产品就是上面说的dist目录里的东西。本文就不详细讨论了。后续会说一些MySQL和vue开发的坑。如果你觉得上面的代码有点复杂,可以把route,app.route,/test2020/date语句块,@hook,MySQL,前端的东西都删掉,这就是最简单的瓶子web服务。这有助于循序渐进地学习。


