杂记2018-02~05

Author Avatar
Marmot 2月 23, 2018
  • 在其它设备中阅读本文章

撸代码和日常的流水账

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
@receiver(models.signals.pre_save, sender=Administrator)
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,作为链接,
例如:
ifconfig

1
2
3
4
5
6
7
docker0   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
23
def 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登记上去
@admin.register(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
3
import 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没有学好,今年启动自己做日记本,希望督促自己今年好好努力。