|
| 1 | +import os |
1 | 2 | import json
|
2 |
| -from django.http import JsonResponse |
| 3 | +from random import randint |
| 4 | +from django.http import JsonResponse, HttpResponseRedirect |
| 5 | +from django.contrib import auth |
| 6 | +from django.contrib.auth.decorators import login_required |
| 7 | +from guest2.settings import BASE_DIR |
3 | 8 |
|
4 | 9 |
|
5 | 10 | def hello_world(request):
|
@@ -115,3 +120,158 @@ def post_header(request):
|
115 | 120 | return JsonResponse(response)
|
116 | 121 | else:
|
117 | 122 | return JsonResponse({"code": 10101, "message": "request method error"})
|
| 123 | + |
| 124 | + |
| 125 | +def phone(request, pid): |
| 126 | + """ |
| 127 | + 一个URL, 根据不同的方法做不同的处理 |
| 128 | + """ |
| 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} |
| 138 | + else: |
| 139 | + response = {"code": 10101, "message": "The phone id is empty"} |
| 140 | + return JsonResponse(response) |
| 141 | + |
| 142 | + # 添加数据 |
| 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} |
| 153 | + else: |
| 154 | + response = {"code": 10102, "message": "The pid already exists"} |
| 155 | + return JsonResponse(response) |
| 156 | + |
| 157 | + # 更新数据 |
| 158 | + 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} |
| 168 | + else: |
| 169 | + response = {"code": 10103, "message": "The updated phone id is empty"} |
| 170 | + return JsonResponse(response) |
| 171 | + |
| 172 | + # 删除数据 |
| 173 | + elif request.method == "DELETE": |
| 174 | + if pid == 1: |
| 175 | + response = {"code": 10204, "message": "delete success"} |
| 176 | + else: |
| 177 | + response = {"code": 10104, "message": "The deleted phone id is empty"} |
| 178 | + return JsonResponse(response) |
| 179 | + |
| 180 | + |
| 181 | +def user_login(request): |
| 182 | + """ |
| 183 | + 通过Session 记录登录状态 |
| 184 | + """ |
| 185 | + if request.method == "POST": |
| 186 | + login_username = request.POST.get("username") |
| 187 | + login_password = request.POST.get("password") |
| 188 | + if login_username == '' or login_password == '': |
| 189 | + return JsonResponse({"code": 10201, "message":"username or password null"}) |
| 190 | + else: |
| 191 | + user = auth.authenticate(username=login_username, password=login_password) |
| 192 | + if user is not None: |
| 193 | + auth.login(request, user) |
| 194 | + # 将 session 信息记录到浏览器 |
| 195 | + request.session['user'] = login_username |
| 196 | + return JsonResponse({"code": 10200, "message": "login success"}) |
| 197 | + else: |
| 198 | + return JsonResponse({"code": 10202, "message": "username or password error"}) |
| 199 | + else: |
| 200 | + return JsonResponse({"code": 10100, "message": "Request method error"}) |
| 201 | + |
| 202 | + |
| 203 | +@login_required |
| 204 | +def user_login_data(request): |
| 205 | + """ |
| 206 | + 通过Session读取用户数据 |
| 207 | + """ |
| 208 | + username = request.session.get('user', '') # 读取浏览器 session |
| 209 | + if username == "": |
| 210 | + return JsonResponse({"code": 10200, "message": 'hello, stranger'}) |
| 211 | + else: |
| 212 | + return JsonResponse({"code": 10200, "message": 'hello, {}'.format(username)}) |
| 213 | + |
| 214 | + |
| 215 | +def get_activity(request): |
| 216 | + """ |
| 217 | + 获取抽奖活动 |
| 218 | + :return: |
| 219 | + """ |
| 220 | + if request.method == "GET": |
| 221 | + activity_info = {"id": 1, "name": "618抽奖活动"} |
| 222 | + return JsonResponse({"code": 10200, "message": "success", "data": activity_info}) |
| 223 | + else: |
| 224 | + return JsonResponse({"code": 10101, "message": "request method error"}) |
| 225 | + |
| 226 | + |
| 227 | +def get_user(request): |
| 228 | + """ |
| 229 | + 获取抽奖用户 |
| 230 | + """ |
| 231 | + if request.method == "GET": |
| 232 | + user_info = {"id": 1, "name": "张三"} |
| 233 | + return JsonResponse({"code": 10200, "message": "success", "data": user_info}) |
| 234 | + else: |
| 235 | + return JsonResponse({"code": 10101, "message": "request method error"}) |
| 236 | + |
| 237 | + |
| 238 | +def get_lucky_number(request): |
| 239 | + """ |
| 240 | + 获取抽奖号码 |
| 241 | + """ |
| 242 | + if request.method == "POST": |
| 243 | + activity_id = request.form.get('aid') |
| 244 | + user_id = request.form.get('uid') |
| 245 | + |
| 246 | + if activity_id is None or user_id is None: |
| 247 | + return JsonResponse({"code": 10102, "message": "username or password is None"}) |
| 248 | + |
| 249 | + elif activity_id == "" or user_id == "": |
| 250 | + return JsonResponse({"code": 10103, "message": "username or password is null"}) |
| 251 | + |
| 252 | + if int(activity_id) != 1: |
| 253 | + return JsonResponse({"code": 10104, "message": "activity id exist"}) |
| 254 | + |
| 255 | + if int(user_id) != 1: |
| 256 | + return JsonResponse({"code": 10105, "message": "user id not exist"}) |
| 257 | + |
| 258 | + number = randint(10000, 99999) |
| 259 | + return JsonResponse({"code": 10200, "message": "Lucky draw number", "data": number}) |
| 260 | + |
| 261 | + else: |
| 262 | + return JsonResponse({"code": 10101, "message": "request method error"}) |
| 263 | + |
| 264 | + |
| 265 | +def upload_file(request): |
| 266 | + """ |
| 267 | + 文件上传 |
| 268 | + """ |
| 269 | + if request.method == "POST": |
| 270 | + my_file = request.FILES.get("file", None) |
| 271 | + if not my_file: |
| 272 | + return JsonResponse({"code": 10101, "message": "no files for upload!"}) |
| 273 | + destination = open(os.path.join(BASE_DIR, "api/upload", my_file.name), 'wb+') |
| 274 | + for chunk in my_file.chunks(): |
| 275 | + destination.write(chunk) |
| 276 | + destination.close() |
| 277 | + return JsonResponse({"code": 10200, "message": "upload success!"}) |
0 commit comments