1
1
import os
2
2
import json
3
3
from random import randint
4
- from django .http import JsonResponse , HttpResponseRedirect
4
+ from django .forms . models import model_to_dict
5
5
from django .contrib import auth
6
6
from django .contrib .auth .decorators import login_required
7
7
from guest2 .settings import BASE_DIR
8
+ from api .models import User
9
+ from api .common import ApiResponse
8
10
9
11
10
12
def hello_world (request ):
11
13
"""
12
14
最简单的get请求,返回json格式返回
13
15
"""
14
- return JsonResponse ({ "code" : 10200 , "message" : " Welcome to API testing"} )
16
+ return ApiResponse ( 200 , "Welcome to API testing" )
15
17
16
18
17
19
def user (request , username ):
18
20
"""
19
21
通过 URI 传参
20
22
"""
21
23
msg = "hello, {}" .format (username )
22
- return JsonResponse ({ "code" : 10200 , "message" : msg } )
24
+ return ApiResponse ( 200 , msg )
23
25
24
26
25
27
def get_user_info (request , uid ):
@@ -29,12 +31,11 @@ def get_user_info(request, uid):
29
31
if request .method == "GET" :
30
32
user_info = {"id" : 1 , "name" : "tom" , "age" : 22 }
31
33
if uid != 1 :
32
- response = { "code" : 10101 , "message" : " user id null"}
34
+ return ApiResponse ( 101 , "user id null" )
33
35
else :
34
- response = {"code" : 10200 , "message" : "success" , "data" : user_info }
35
- return JsonResponse (response )
36
+ return ApiResponse (200 , data = user_info )
36
37
else :
37
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
38
+ return ApiResponse ( 101 , "request method error" )
38
39
39
40
40
41
def search (request ):
@@ -47,9 +48,9 @@ def search(request):
47
48
data_list = ["selenium教程" , "seleniumhq.org" , "selenium环境安装" ]
48
49
else :
49
50
data_list = []
50
- return JsonResponse ({ "code" : 10200 , "message" : "success" , " data" : data_list } )
51
+ return ApiResponse ( 200 , data = data_list )
51
52
else :
52
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
53
+ return ApiResponse ( 101 , "request method error" )
53
54
54
55
55
56
def post_login (request ):
@@ -62,19 +63,18 @@ def post_login(request):
62
63
password = request .POST ('password' )
63
64
64
65
if username is None or password is None :
65
- response = { "code" : 10102 , "message" : " username or passwrord is None"}
66
+ return ApiResponse ( 102 , "username or passwrord is None" )
66
67
67
68
elif username == "" or password == "" :
68
- response = { "code" : 10203 , "message" : " username or passwrord is null"}
69
+ return ApiResponse ( 103 , "username or passwrord is null" )
69
70
70
71
elif username == "admin" and password == "a123456" :
71
- response = { "code" : 10200 , "message" : " login success"}
72
+ return ApiResponse ( 200 , "login success" )
72
73
73
74
else :
74
- response = {"code" : 10104 , "message" : "username or password error" }
75
- return JsonResponse (response )
75
+ return ApiResponse (104 , "username or password error" )
76
76
else :
77
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
77
+ return ApiResponse ( 101 , "request method error" )
78
78
79
79
80
80
def post_add_user (request ):
@@ -86,25 +86,24 @@ def post_add_user(request):
86
86
try :
87
87
data = json .loads (request .body )
88
88
except json .decoder .JSONDecodeError :
89
- return JsonResponse ({ "code" : 10105 , "message" : " format error"} )
89
+ return ApiResponse ( 105 , "format error" )
90
90
91
91
try :
92
92
name = data ["name" ]
93
93
age = data ["age" ]
94
94
height = data ["height" ]
95
95
except KeyError :
96
- response = { "code" : 10102 , "message" : " key null"}
96
+ return ApiResponse ( 102 , "key null" )
97
97
else :
98
98
if name == "" :
99
- response = { "code" : 10103 , "message" : " name null"}
99
+ return ApiResponse ( 103 , "name null" )
100
100
elif name == "tom" :
101
- response = { "code" : 10104 , "message" : " name exist"}
101
+ return ApiResponse ( 104 , "name exist" )
102
102
else :
103
103
data = {"name" : name , "age" : age , "height" : height }
104
- response = {"code" : 10200 , "message" : "add success" , "data" : data }
105
- return JsonResponse (response )
104
+ return ApiResponse (200 , "add successful" , data )
106
105
else :
107
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
106
+ return ApiResponse ( 101 , "request method error" )
108
107
109
108
110
109
def post_header (request ):
@@ -115,67 +114,70 @@ def post_header(request):
115
114
if request .method == 'POST' :
116
115
token = request .headers .get ("token" )
117
116
ct = request .headers .get ("Content-Type" )
118
- response = {"code" : 10200 , "message" : "header ok!" ,
119
- "data" : {"token" : token , "Content-Type" : ct }}
120
- return JsonResponse (response )
117
+ return ApiResponse (200 , "header ok!" , {"token" : token , "Content-Type" : ct })
121
118
else :
122
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
119
+ return ApiResponse ( 101 , "request method error" )
123
120
124
121
125
- def phone (request , pid ):
122
+ def user (request , uid ):
126
123
"""
127
- 一个URL, 根据不同的方法做不同的处理
124
+ RESTful 风格的接口实现
125
+ 实现用户的查询、添加、更新和删除
126
+ /event/1/ = GET
127
+ /event/2/ = POST
128
+ /event/1/ = PUT
129
+ /event/1/ = DELETE
130
+ :param request:
131
+ :param uid:
132
+ :return:
128
133
"""
129
- # 获取数据
130
- if request .method == 'GET' :
131
- if pid == 1 :
132
- phone_info = {
133
- "id" : pid ,
134
- "name" : "小米手机" ,
135
- "price" : 1999
136
- }
137
- response = {"code" : 10201 , "message" : "get success" , "data" : phone_info }
134
+ if request .method == "GET" :
135
+ try :
136
+ user = User .objects .get (id = uid )
137
+ except User .DoesNotExist :
138
+ return ApiResponse (101 , message = "用户信息不存在" )
138
139
else :
139
- response = { "code" : 10101 , "message" : "The phone id is empty" }
140
- return JsonResponse ( response )
140
+ user_info = model_to_dict ( user )
141
+ return ApiResponse ( 200 , data = user_info )
141
142
142
- # 添加数据
143
143
elif request .method == "POST" :
144
- if pid != 1 :
145
- name = request . POST . get (' name' )
146
- price = request . POST . get ('price' )
147
- phone_info = {
148
- "id" : pid ,
149
- "name" : name ,
150
- "price" : price
151
- }
152
- response = { "code" : 10202 , "message" : " add success" , "data" : phone_info }
144
+ post = json . loads ( request . body )
145
+ name = post . get (" name" )
146
+ age = post . get ("age" )
147
+ try :
148
+ User . objects . get ( id = uid )
149
+ except User . DoesNotExist :
150
+ user = User . objects . create ( id = uid , name = name , age = age )
151
+ user_info = model_to_dict ( user )
152
+ return ApiResponse ( 200 , "add success" , user_info )
153
153
else :
154
- response = {"code" : 10102 , "message" : "The pid already exists" }
155
- return JsonResponse (response )
154
+ return ApiResponse (102 , "用户id已存在" )
156
155
157
- # 更新数据
158
156
elif request .method == "PUT" :
159
- if pid == 1 :
160
- name = request .GET .get ('name' )
161
- price = request .GET .get ('price' )
162
- phone_info = {
163
- "id" : pid ,
164
- "name" : name ,
165
- "price" : price
166
- }
167
- response = {"code" : 10203 , "message" : "update success" , "data" : phone_info }
157
+ put = json .loads (request .body )
158
+ name = put .get ("name" )
159
+ age = put .get ("age" )
160
+ try :
161
+ user = User .objects .get (id = uid )
162
+ except User .DoesNotExist :
163
+ return ApiResponse (101 , "用户信息不存在" )
168
164
else :
169
- response = {"code" : 10103 , "message" : "The updated phone id is empty" }
170
- return JsonResponse (response )
165
+ user .name = name
166
+ user .age = age
167
+ user .save ()
168
+ user_info = model_to_dict (user )
169
+ return ApiResponse (200 , "update success" , user_info )
171
170
172
- # 删除数据
173
171
elif request .method == "DELETE" :
174
- if pid == 1 :
175
- response = {"code" : 10204 , "message" : "delete success" }
172
+ try :
173
+ user = User .objects .get (id = uid )
174
+ except User .DoesNotExist :
175
+ return ApiResponse (101 , "用户信息不存在" )
176
176
else :
177
- response = {"code" : 10104 , "message" : "The deleted phone id is empty" }
178
- return JsonResponse (response )
177
+ user .delete ()
178
+ return ApiResponse (200 , "delete success" )
179
+ else :
180
+ return ApiResponse (101 , "request method error" )
179
181
180
182
181
183
def user_login (request ):
@@ -186,18 +188,18 @@ def user_login(request):
186
188
login_username = request .POST .get ("username" )
187
189
login_password = request .POST .get ("password" )
188
190
if login_username == '' or login_password == '' :
189
- return JsonResponse ({ "code" : 10201 , "message" : " username or password null"} )
191
+ return ApiResponse ( 102 , "username or password null" )
190
192
else :
191
193
user = auth .authenticate (username = login_username , password = login_password )
192
194
if user is not None :
193
195
auth .login (request , user )
194
196
# 将 session 信息记录到浏览器
195
197
request .session ['user' ] = login_username
196
- return JsonResponse ({ "code" : 10200 , "message" : " login success"} )
198
+ return ApiResponse ( 200 , "login success" )
197
199
else :
198
- return JsonResponse ({ "code" : 10202 , "message" : " username or password error"} )
200
+ return ApiResponse ( 103 , "username or password error" )
199
201
else :
200
- return JsonResponse ({ "code" : 10100 , "message" : "Request method error"} )
202
+ return ApiResponse ( 101 , "request method error" )
201
203
202
204
203
205
@login_required
@@ -207,9 +209,9 @@ def user_login_data(request):
207
209
"""
208
210
username = request .session .get ('user' , '' ) # 读取浏览器 session
209
211
if username == "" :
210
- return JsonResponse ({ "code" : 10200 , "message" : 'hello, stranger' } )
212
+ return ApiResponse ( 200 , 'hello, stranger' )
211
213
else :
212
- return JsonResponse ({ "code" : 10200 , "message" : 'hello, {}' .format (username )} )
214
+ return ApiResponse ( 200 , 'hello, {}' .format (username ))
213
215
214
216
215
217
def get_activity (request ):
@@ -219,9 +221,9 @@ def get_activity(request):
219
221
"""
220
222
if request .method == "GET" :
221
223
activity_info = {"id" : 1 , "name" : "618抽奖活动" }
222
- return JsonResponse ({ "code" : 10200 , "message" : "success" , " data" : activity_info } )
224
+ return ApiResponse ( 200 , data = activity_info )
223
225
else :
224
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
226
+ return ApiResponse ( 101 , "request method error" )
225
227
226
228
227
229
def get_user (request ):
@@ -230,9 +232,9 @@ def get_user(request):
230
232
"""
231
233
if request .method == "GET" :
232
234
user_info = {"id" : 1 , "name" : "张三" }
233
- return JsonResponse ({ "code" : 10200 , "message" : "success" , " data" : user_info } )
235
+ return ApiResponse ( 200 , data = user_info )
234
236
else :
235
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
237
+ return ApiResponse ( 101 , "request method error" )
236
238
237
239
238
240
def get_lucky_number (request ):
@@ -244,22 +246,22 @@ def get_lucky_number(request):
244
246
user_id = request .form .get ('uid' )
245
247
246
248
if activity_id is None or user_id is None :
247
- return JsonResponse ({ "code" : 10102 , "message" : " username or password is None"} )
249
+ return ApiResponse ( 102 , "username or password is None" )
248
250
249
251
elif activity_id == "" or user_id == "" :
250
- return JsonResponse ({ "code" : 10103 , "message" : " username or password is null"} )
252
+ return ApiResponse ( 10103 , "username or password is null" )
251
253
252
254
if int (activity_id ) != 1 :
253
- return JsonResponse ({ "code" : 10104 , "message" : " activity id exist"} )
255
+ return ApiResponse ( 104 , "activity id exist" )
254
256
255
257
if int (user_id ) != 1 :
256
- return JsonResponse ({ "code" : 10105 , "message" : " user id not exist"} )
258
+ return ApiResponse ( 105 , "user id not exist" )
257
259
258
260
number = randint (10000 , 99999 )
259
- return JsonResponse ({ "code" : 10200 , "message" : " Lucky draw number" , "data" : number } )
261
+ return ApiResponse ( 200 , "Lucky draw number" , number )
260
262
261
263
else :
262
- return JsonResponse ({ "code" : 10101 , "message" : " request method error"} )
264
+ return ApiResponse ( 101 , "request method error" )
263
265
264
266
265
267
def upload_file (request ):
@@ -269,9 +271,9 @@ def upload_file(request):
269
271
if request .method == "POST" :
270
272
my_file = request .FILES .get ("file" , None )
271
273
if not my_file :
272
- return JsonResponse ({ "code" : 10101 , "message" : " no files for upload!"} )
274
+ return ApiResponse ( 101 , "no files for upload!" )
273
275
destination = open (os .path .join (BASE_DIR , "api/upload" , my_file .name ), 'wb+' )
274
276
for chunk in my_file .chunks ():
275
277
destination .write (chunk )
276
278
destination .close ()
277
- return JsonResponse ({ "code" : 10200 , "message" : " upload success!"} )
279
+ return ApiResponse ( 200 , "upload success!" )
0 commit comments