Write some code paradigm.
Login Check
Examine login status without parameter loss.
Specially design for Django. It takes advantage of the decorator feature of python.
| def check_login(func): def inner_func(*args, **kwargs): request = args[0] if request.session.get('is_login', False): return func(*args, **kwargs) else: print("no session!") return redirect('/login') return inner_func
|
Modify Item
model
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Panda(models.Model): """大熊猫 Attributes: name(:obj:`models.CharField`): 大熊猫名称 age(:obj:`models.IntegerField`): 大熊猫年龄 gender(:obj:`models.IntegerField`): 大熊猫性别,雄性(1),雌性(0),默认为雄性。 pedigreeId(:obj:`models.CharField`): 谱系ID status(:obj:`models.IntegerField`): 大熊猫状态,普通(0),发情(1),默认为普通。 remark(:obj:`models.TextField`): 备注信息,如本年度发情时间等。 {"estrus_time": 1610288040} state(:obj:`models.IntegerField`): 状态,0为删除,1为可用。 hormone(:obj:`models.TextField`): 激素水平 """ name = models.CharField(max_length=100) age = models.IntegerField() gender = models.IntegerField(default=1) pedigreeId = models.CharField(max_length=100, blank=True) status = models.IntegerField(default=0) remark = models.TextField(default="", blank=True) state = models.IntegerField(default=1) hormone = models.TextField(default="", blank=True)
def __unicode__(self):
return "{}-{}-{}-{}".format(self.name, self.pedigreeId, self.status, self.state)
|
modify
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @check_login def pandaChange(request): """修改大熊猫信息的API Arg: request(:obj:`HttpRequest`): 当一个页面被请求时,Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据。然后,Django 加载相应的视图,将 HttpRequest 作为视图函数的第一个参数。每个视图负责返回一个 HttpResponse 对象。 Returns: JsonObject(:obj:`HttpResponse`): Json对象 """
response_data = {"errcode": 1, "msg": "操作成功"}
data = {} panda_keys = ["id", "name", "age", "gender", "pedigreeId", "status", "remark", "state", "hormone"] for key in panda_keys: if request.POST.get(key): data[key] = request.POST.get(key)
panda = Panda.objects.filter(id=data["id"]).filter(state=1) if len(panda)==0: response_data = {"errcode": 0, "msg": "大熊猫(id:{})个体不存在!".format(data["panda_id"])} panda = panda[0] for key in data: if key != 'id': setattr(panda, key, data[key]) panda.save()
return HttpResponse(json.dumps(response_data, ensure_ascii=False), content_type="application/json")
|