小编Par*_*ras的帖子

Django 中 REST API 的目录结构应该是什么?

我开始使用 Djano 框架开发 REST API。以前,我专门使用 SpringBoot 与 Java 相关框架进行了广泛的合作。

如果我以基于 Java 的框架中的 REST API 为例,下面是我最常用的目录结构:

在此处输入图片说明

所以一些主要是关于MVC 设计模式的。同样在java中,每个类都写在一个新文件上,但是我一直在寻找的教程在一个文件中编写了多个类,这是关于Django的最佳实践吗?

我还看到在 Django 中我们创建了一个项目,然后在其中创建了一个应用程序。这些应用程序相当于java中的包吗?

此外,在 SpringBoot 和其他与 Java 相关的框架中,我们通常遵循自顶向下的方法,其中控制器接收一个调用,该调用进一步传递给所有业务逻辑所在的服务,然后服务进一步调用 CRUD 的 DAO(Repository) 和相应的结果从 DAO 传递到服务,返回到生成格式化响应的控制器。

我在 Django 中看到的所有逻辑都是写在为 CRUD 调用模型的视图上的。我们在这里不遵循 SOLID 原则吗?

如果我举一个图书馆管理系统的例子,人们将如何围绕 Django 框架设计它?

django python-3.x django-rest-framework

3
推荐指数
1
解决办法
2145
查看次数

Kafka-python 如何消费json消息

我是 Python 新手,从 Kafka 开始。我有一个需要发送和使用 json 消息的要求。为此,我使用kafka-python与 Kafka 进行通信。

#Producer.py
from kafka import KafkaProducer
import json
producer = KafkaProducer(bootstrap_servers='localhost:9092',value_serializer=lambda v: json.dumps(v).encode('utf-8'))
producer.send('offering_new', {"dataObjectID": "test1"})

#Consumer.py
import json
from kafka import KafkaConsumer
consumer = KafkaConsumer(bootstrap_servers='localhost:9092',auto_offset_reset='earliest', value_deserializer=lambda m: json.loads(m.decode('utf-8')))
consumer.subscribe(['offering_new'])
for message in consumer :
    print(message)
Run Code Online (Sandbox Code Playgroud)

但是,我在消费者上遇到以下异常:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/paras/.local/lib/python3.6/site-packages/kafka/consumer/group.py", line 1111, in __next__
    return next(self._iterator)
  File "/home/paras/.local/lib/python3.6/site-packages/kafka/consumer/group.py", line 1082, in _message_generator
    for msg in self._fetcher:
  File "/home/paras/.local/lib/python3.6/site-packages/kafka/consumer/fetcher.py", line 482, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x apache-kafka kafka-python

3
推荐指数
1
解决办法
8032
查看次数

如何在 Spring Webflux 中获取引用网址?

如何在 Spring Webflux 中获取引用网址?我尝试查看ServerWebExchange exchange对象中的标头属性,但找不到相同的属性。有人可以帮我吗?

java spring-webflux spring-boot-2 spring-reactive spring5

3
推荐指数
1
解决办法
4322
查看次数

Spring Security 5:找不到BCryptPasswordEncoder类型的Bean

我正在尝试使用JWT令牌来保护REST API.为了保存编码的用户密码,我正在尝试使用bcrypt进行编码.但是,当我尝试自动装配BCryptPasswordEncoder时,我收到以下错误:

Could not autowire. No beans of BCryptPasswordEncoder type found. Check autowiring problems in bean class.
Run Code Online (Sandbox Code Playgroud)

这就是我的控制器的样子:

package com.starter.springsecurity.demo.controller;

import com.starter.springsecurity.demo.domain.User;
import com.starter.springsecurity.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    private BCryptPasswordEncoder bCryptPasswordEncoder;

    public UserController(BCryptPasswordEncoder bCryptPasswordEncoder){
        this.bCryptPasswordEncoder = bCryptPasswordEncoder;
    }

    @RequestMapping("/register")
    public void register(@RequestBody User user){

    }
}
Run Code Online (Sandbox Code Playgroud)

这是我正在关注的博客:https: //dzone.com/articles/implementing-jwt-authentication-on-spring-boot-api

Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.starter.springsecurity</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging> …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-boot

2
推荐指数
2
解决办法
2243
查看次数

如果Kafka中不存在主题,如何使用kafka-python动态创建主题

我对 Python 相当陌生,刚刚开始使用 Kafka。我正在使用名为python-kafka 的库与 Kafka 进行通信。现在我有一个要求,我需要动态创建主题,但是如果它确实存在,我不需要创建它。

通过阅读文档,我发现我可以使用KafkaAdminClient创建和删除主题,但是我没有找到任何方法来检查主题是否存在。

python apache-kafka kafka-python

2
推荐指数
1
解决办法
5263
查看次数

如何使用 kafka-python 以编程方式创建主题?

我刚开始使用 Kafka 并且对 Python 相当陌生。我正在使用这个名为的库kafka-python与我的 Kafka 代理进行通信。现在我需要从我的代码动态创建一个主题,从文档中我看到的是我可以调用create_topics()方法来这样做,但是我不确定,我将如何获得此类的实例。我无法从文档中理解这一点。

有人可以帮我弄这个吗?

python apache-kafka kafka-python kafka-topic

2
推荐指数
1
解决办法
2038
查看次数

Confluence-Kafka Python:如何以编程方式列出所有主题

我的本地系统中运行着一个卡夫卡代理。为了使用我的基于 Django 的 Web 应用程序与损坏的设备进行通信,我使用confluence-kafka包装器。然而,通过浏览 admin api,我找不到任何用于列出 kafka 主题的 api。(主题是务实创建的并且是动态的)。

有什么办法可以在我的程序中列出它们吗?要求是,如果我的工作人员重新启动所有分配的监听这些主题的消费者,则必须重新初始化,因此我想循环到所有主题并为每个主题分配一个消费者。

python django python-3.x apache-kafka confluent-platform

2
推荐指数
1
解决办法
1万
查看次数

如何为 Quarkus App 生成 PGO 优化的本机可执行文件?

我有一个作为 REST API 公开的 Quarkus 应用程序。我需要为该应用程序生成配置文件引导的优化本机映像。

我查看了 Quarkus 文档,但找不到太多内容。有人生成过相同的吗?

我在本地计算机上安装了 GraalVM Enterprise 版本。

要生成正常的本机映像,请使用以下命令:

./mvnw package -Dnative

graalvm quarkus graalvm-native-image quarkus-native

2
推荐指数
1
解决办法
377
查看次数

在Android中,Sqlite与主键的ROWID相同吗?

我有一个包含以下架构的表:

public static final String PRIMARY_KEY = "_id";
public static final String TASK_NAME = "name";
public static final String TASK_DESCRIPTION = "description";
public static final String IS_TASK_COMPLETED = "is_completed";
public static final String IS_TASK_DELETED = "is_deleted";
public static final String TASK_START_DATE = "start_date";
public static final String TASK_START_TIME = "start_time";
public static final String ESTIMATED_TASK_END_DATE = "end_date";
public static final String TIMESTAMP = "timestamp";
Run Code Online (Sandbox Code Playgroud)

在一个片段中,我使用该insert()方法在表中插入一行.我知道这会返回rowId插入的行,但在这个帖子中我读到了

如果表包含INTEGER PRIMARY KEY类型的列,则该列将成为ROWID的别名.然后,您可以使用四个不同的名称中的任何一个来访问ROWID,上面描述的原始三个名称或给予INTEGER PRIMARY KEY列的名称.所有这些名称都是彼此的别名,并且在任何情况下都能同样有效.

返回的rowId也将与主键相同.但是如果删除一行并且在那种情况下插入另一行,rowId那么该primary …

database sqlite android

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

Rails 5:NoMethod 错误 - 未定义方法分页

我有一个基于 Rails 5 的 JSON API。我有一种方法可以提供一个特定公司的所有产品列表,我想对其进行分页,这样就不会一次显示所有数据。为此,我遇到了两个宝石,即will_paginateapi-pagination。运行bundle install并重新启动服务器后,我仍然收到以下错误:

NoMethodError (undefined method `paginate' for #<Api::V1::ProductsController:0x007fb25404db30>)
Run Code Online (Sandbox Code Playgroud)

产品控制器:

require 'roo'
class Api::V1::ProductsController < ApplicationController
  respond_to :json

  def index
    comp_id = params[:company_id]
    cat_id = params[:category_id]
    if comp_id
      if comp_id && cat_id
        product = Product.where(:company_id => comp_id, :category_id => cat_id)
      else
        product = Product.where(:company_id => comp_id)
      end
      paginate json: product, status: 200
    else
      render json: { errors: "Company ID is NULL" }, status: 422
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

Gemfile.rb

source 'https://rubygems.org' …
Run Code Online (Sandbox Code Playgroud)

pagination json ruby-on-rails will-paginate ruby-on-rails-5

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