CODE PARADIGM

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.

1
2
3
4
5
6
7
8
9
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")


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!