小编Moh*_*eza的帖子

如何使用 Golang echo 框架和 Telegram bot?

我想将“电报机器人”与“回声框架”一起使用(当服务器启动时,回声和电报机器人一起工作)。我使用了下面的代码,但是当我运行它时,电报机器人没有启动。

我的 main.go:

package main

import (
    "database/sql"
    "log"
    "net/http"
    "strings"

    tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
    "github.com/labstack/echo"
    _ "github.com/mattn/go-sqlite3"
)

func main() {
    e := echo.New()
    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, "Hello, World!")
    })
    _ = e.Start(":1323")

    db, err := sql.Open("sqlite3", "./criticism.db")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    bot, err := tgbotapi.NewBotAPI("")
    if err != nil {
        log.Fatal(err)
    }

    bot.Debug = true

    log.Printf("Authorized on account %s", bot.Self.UserName)

    u := tgbotapi.NewUpdate(0)
    u.Timeout = 60

    updates, err := bot.GetUpdatesChan(u)

    for …
Run Code Online (Sandbox Code Playgroud)

go telegram-bot go-echo

5
推荐指数
1
解决办法
655
查看次数

DRF:如何在使用深度选项的序列化器中隐藏密码?

我正在为模型使用下面的序列化器User,但是当我使用深度来处理外键时,密码会显示在User对象中。

用户序列化器:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        read_only_fields = ('is_active', 'is_staff', 'is_superuser',)
        exclude = ('password', )
        extra_kwargs = {'password': {'write_only': True, 'min_length': 4}}
Run Code Online (Sandbox Code Playgroud)

在下面的序列化器中一切都很好:

class AuditSerializer(serializers.ModelSerializer):
    def __init__(self, instance=None, **kwargs):
        if instance:
            setattr(self.Meta, 'depth', 10)
        else:
            setattr(self.Meta, 'depth', 0)
        super(AuditSerializer, self).__init__(instance, **kwargs)

    initiator = UserSerializer(read_only=True)

    class Meta:
        model = Audit
        fields = ['id', 'initiator']
        read_only_fields = ['id', 'initiator']
        depth = 0
Run Code Online (Sandbox Code Playgroud)

但在下面与之前的模型/序列化器相关的内容中,我遇到了密码问题:

class AuditAttachmentSerializer(serializers.ModelSerializer):
    def __init__(self, instance=None, **kwargs):
        if instance:
            setattr(self.Meta, 'depth', 10)
        else: …
Run Code Online (Sandbox Code Playgroud)

python django django-serializer django-rest-framework drf-queryset

5
推荐指数
1
解决办法
2045
查看次数