1.准备工作

安装python/安装web.py/安装sql插件

2.python代码

  1 # coding:utf-8
  2 import sys 
  3 default_encoding = 'utf-8' 
  4 if sys.getdefaultencoding() != default_encoding: 
  5     reload(sys) 
  6     sys.setdefaultencoding(default_encoding) 
  7 import web
  8 from web import form
  9 import json
 10 
 11 render = web.template.render('templates')
 12 
 13 db = web.database(dbn='mysql', db='last2km', 
 14     host='rds3uiru3je6rmipublic.mysql.rds.aliyuncs.com', user='last2km', pw='c42hn7rLq')
 15 
 16 order_form = form.Form(
 17     form.Textbox("consignee", description="consignee"),
 18     form.Textbox("address", description="address"),
 19     form.Textbox("mobile", description="mobile"),
 20     form.Textbox("receive_amount", description="receive_amount"),
 21     form.Textbox("remark", description="remark"),
 22     form.Button("submit", type="submit", description="Register")
 23 )
 24 
 25 detail_form = form.Form(
 26     form.Textbox("name", description="name"),
 27     form.Textbox("price", description="price"),
 28     form.Textbox("count", description="count"),
 29     form.Button("submit", type="submit", description="submit")
 30 )
 31 
 32 urls = (
 33     '/','index',
 34     '/orderIndex','orderIndex',
 35     '/addOrder','addOrder',
 36     '/updateOrder/(.+)','updateOrder',
 37     '/addOrderDetail/(.+)','addOrderDetail',
 38     '/OrderService/(.+)/(.+)','OrderService'
 39 )
 40 
 41 class index:
 42     def GET(self):
 43         return render.index()
 44 
 45 
 46 class updateOrder:
 47     def GET(self, id):
 48         oser = OrderService()
 49         oser.update(id,1)
 50         return render.orderIndex(oser.getByStatus('0,1,4,16,64'))
 51 
 52 
 53 class orderIndex:
 54     def GET(self):
 55         oser = OrderService()
 56         return render.orderIndex(oser.getByStatus('0,1,4,16,64'))
 57         
 58 
 59 class addOrder:
 60     def GET(self):
 61         f = order_form()
 62         return render.addOrder(f)
 63 
 64     def POST(self):
 65         f = web.input()
 66         a = db.insert('lk_order',seller_id=1, mobile=f['mobile'], 
 67             consignee=f['consignee'],address=f['address'],created_time=web.SQLLiteral("NOW()"))
 68         oser = OrderService()
 69         order = oser.getById(a)
 70         return render.addOrderDetail(detail_form(), order, oser.getDetails(order.id))
 71 
 72 class addOrderDetail():
 73     def GET(self,id):
 74         oser = OrderService()
 75         return render.addOrderDetail(detail_form(), oser.getById(id), oser.getDetails(id))
 76 
 77     def POST(self,id):
 78         f = web.input()
 79         oser = OrderService()
 80         db.insert('lk_order_detail', order_id=id, name=f['name'], price=f['price'], count=f['count'])
 81         return render.addOrderDetail(detail_form(), oser.getById(id), oser.getDetails(id))
 82 
 83 
 84 class OrderService:
 85     def GET(self, Method, data):
 86         web.header('Access-Control-Allow-Origin', '*')
 87         oser = OrderService()
 88 
 89         if Method == 'GET':
 90             order = oser.getById(data)
 91             for k in order.keys():
 92                 order[k] = str(order[k])
 93             oser.generate(order)
 94             return json.dumps(dict(order),ensure_ascii= False)
 95         elif Method == 'STATUS':
 96             orders = []
 97             for order in oser.getByStatus(data):
 98                 for k in order.keys():
 99                     order[k] = str(order[k])
100                 oser.generate(order)
101                 orders.append(dict(order))
102             return json.dumps(orders,ensure_ascii= False)
103         elif Method == 'UPDATE':
104             print data
105             obj = json.loads(data)
106             oser.update(obj['id'], obj['status'])
107             order = oser.getById(obj['id'])
108             for k in order.keys():
109                 order[k] = str(order[k])
110             oser.generate(order)
111             return json.dumps(dict(order),ensure_ascii= False)
112         elif Method == 'DETAIL':
113             orderDetails = []
114             for detail in oser.getDetails(data):
115                 for k in detail.keys():
116                     detail[k] = str(detail[k])
117                 orderDetails.append(dict(detail))
118             return json.dumps(orderDetails,ensure_ascii= False)
119         elif Method == 'ADD':
120             pass
121 
122     def getById(self, id):
123         return db.select('lk_order', where='id=$id', vars=locals())[0]
124 
125     def getByStatus(self, data):
126         status = data.split(',')
127         return db.select('lk_order', where='status in $status', vars=locals())
128 
129     def update(self, id, status):
130         db.update('lk_order', where='id=$id', status=status, vars=locals())
131 
132     def getDetails(self, id):
133         return db.select('lk_order_detail', where='order_id=$id', vars=locals())
134 
135     def getSellerId(self, id):
136         return db.select('lk_seller', where='id=$id', vars=locals())[0]
137 
138     def Add(self, order, details):
139         id = db.insert('lk_order', seller_id=order['seller_id'], consignee=order['consignee'], address=order['address']
140             , mobile=order['mobile'], remark=order['remark'], order_amount=order['order_amount']
141             , receive_amount=order['receive_amount'], status=order['status'],created_time=web.SQLLiteral("NOW()"))
142 
143         for detail in details:
144             db.insert('lk_order_detail', order_id=id, name=detail['name'], price=detail['price'], count=detail['count'])
145         return id
146 
147     def generate(self, order):
148         if order['status'] == '1':
149             order['nextOperation'] = "接单"
150             order['stateClass'] = 'ion-information-circled color-danger'
151         elif order['status'] == '4':
152             order['nextOperation'] = "签收"
153             order['stateClass'] = 'ion-jet color-active'
154         elif order['status'] == '16':
155             order['nextOperation'] = "回单"
156             order['stateClass'] = 'ion-checkmark-circled color-success'
157 
158         sellerId = order['seller_id']
159         sellerTmp = db.select('lk_seller', where='id=$sellerId', vars=locals())[0]
160         order['sellerName'] = sellerTmp['name']
161         order['sellerLogo'] = sellerTmp['logo']
162 
163 if __name__ == "__main__":
164     app = web.application(urls, globals())
165     app.run()
View Code

相关文章: