Python
supports many programmer from variety of programming background.
Therefore you might found some style adopted from others programming languages
Here are some of style that I recommend everybody follow
print(f"var: {var}")
. Use literal string interpolationlogger.info
. UserPython
logger module do not useprint
def mtl_request(data: typing.Dict, headers: typing.Dict, endpoint: str = 'DOPA'):
Add type hint- Avoid
if else
usekey: value
from dict with
to deal with file- single quote for programming, double quote for human string
- hyphen in the url
- Use absolute header. Not relative path
- Do not expose
Django Admin
to any people except programmer - ForeignKey, M2M. Always add
related_names, related_query_names
- Keep app flat not nested
- Always validate input with
validator
- They are 3 options
- Default
- validator
- def validate()
DO NOT use
.save(**kwargs)
when it is not necessity
from rest_framework import serializers
class ExampleSerializer(serializers.ModelSerializer):
var_default = serializers.IntegerField() # Use default validator
var1 = serializers.CharField(validators=[validator1, validator2])
var2 = serializers.EmailField()
def validate(self, attrs):
# customized logic here
return attrs
ngrok
to debug yourwebhook
import ipdb; ipdb.set_trace()
is better thanpdb