杂记2018-02~05
撸代码和日常的流水账
2018-05-10
sentry报警,写了一大堆工具,然后最近又开始干CRUD基础工作,忙的没有更新了..
2018-04-20
熟悉了docker和docker-compose
把数据库全部改成 docker 的了
在docker 里面撸了个kali linux
2018-04-13
django admin还可以扩展更多
admin.TabularInline 可以作为外键扩展到另一个后台管理里面
formset = BaseInlineFormSet 可以自定义结构和form处理机制
2018-04-10
nginx 配置冲突的时候开绿指定优先级,弄清楚root和alias的区别1
2
3
4
5
6# pre_save, post_save, pre_delete..... sender 被操作的model
def print_at_pre(sender, instance, **kwargs):
# 在model操作的前后做一些额外的操作, instance就是被操作的对象
print("i will create user")
print(instance.mobile)
2018-04-08
由于容器中127.0.0.1指向的容器自身,当docker容器内部调用宿主机的端口,可以通过查找宿主机为docker分配的ip段,然后修改最后一位为1,作为链接,
例如:
ifconfig1
2
3
4
5
6
7docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:32809 errors:0 dropped:0 overruns:0 frame:0
TX packets:53352 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1586017 (1.5 MB) TX bytes:240089466 (240.0 MB)
那么指向172.17.42.1的就相当于宿主机的127.0.0.1
2018-04-04
感觉就像一个睿智。。。
乘着搭建测试服务器的时候倒腾了一下docker和docker-compose写点笔记
2018-04-02
使用Django自带日志1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23def log_entry(user_id, model, action, change_message=""):
"""
ADDITION = 1
CHANGE = 2
DELETION = 3
:param user_id: 用户id
:param model: 操作model
:param action: 动作
:param change_message: 额外信息
:return:
"""
try:
le = LogEntry.objects.log_action(
user_id=user_id,
content_type_id=ContentType.objects.get_for_model(model).pk,
object_id=model.pk,
object_repr=repr(model),
action_flag=action,
change_message=change_message
)
return le
except Exception as e:
return e
更改Django后台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# 继承和修改
class AdminAdmin(UserAdmin):
# 内部展示内容
fieldsets = (
(None, {'fields': ('mobile', 'password')}),
(_('Personal info'), {'fields': ('name', 'nickname', 'gender', 'avatar_url', 'role_name', 'department')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
# 搜索页展示
list_display = ('name', 'nickname', 'mobile', 'department', 'last_login')
# 搜索条件
search_fields = ('name', 'nickname', 'mobile')
# 把Administrator登记上去
class AdministratorAdmin(AdminAdmin):
search_fields = ('name', 'nickname', 'mobile')
admin.site.site_header = "***管理系统"
admin.site.site_title = "***管理系统"
admin.site.index_title = "***管理菜单"
2018-03-23
使用1
index = data.get("index") or ''
防止恶意构造一个 {“index”: None},依然会返回 None。
在docker中链接redis因为不能取127.0.0.1也不好再通过外网
可以直接通过docker的DNS链接本地docker的redis,链接其他容器同理
redis://:密码@redis_容器:6379/3
2018-03-21
学习rest_framework serializers,了解DRF的优点
2018-03-20
大概学习celery定时任务
2018-03-19
今天学了不少,git协作开发,Django扩展命令,Django分库并迁移
2018-03-15
休息了几天入职新公司,学习了很多,用了Django rest_framework,APIView继承了Django自带的View,但是增加了一些类似权限认证的东西
authentication_classes,牵扯api_settings,研究一下
get 一段代码1
2
3import os
# 本文件的上层路径
rel_path = os.path.abspath(os.path.join(__file__, '../'))
2018-03-07
APP新版本提交了,看了下Django,models.Manager部分
2018-03-05
前几天都在对接一个PHP的后端,遇到PHP序列化问题,使用了phpserialize,周末看了一下collections里面的namedtuple
2018-02-28
面试了一波,深感自己太菜,不过还是过了,准备交接迎接新工作,整理一些面试没有过的一些题
2018-02-27
撸了一波Golang的gin框架,写微服务
2018-02-26
抽空撸了一下这个Python的面试题,还是挺有意思,比较基础
2018-02-25
kennethreitz (requests的作者)撸了一个解析Html的库request-html,依然强大而且for Humans
2018-02-24
撸一天Docker和hyperledger-fabric(IBM开源区块链项目)。
hyperledger-fabric demo跑起来了,先研究一下。
2018-02-23
年前搞定的这个git blog,感觉去年下半年有点划水,go没有学好,今年启动自己做日记本,希望督促自己今年好好努力。