我正在构建一个将托管在服务器上的应用程序.我想为应用程序构建一个API,以便于与任何平台(Web App,Mobile App)进行交互.我不理解的是,在使用REST API时,我们如何对用户进行身份验证.
例如,当用户已登录然后想要创建论坛主题时.我怎么知道用户已经登录?
我试图检查已完成的任务的结果. 这有效
from proj.tasks import add
res = add.delay(3,4)
res.get()
7
res.status
'SUCCESS'
res.id
'0d4b36e3-a503-45e4-9125-cfec0a7dca30'
Run Code Online (Sandbox Code Playgroud)
但我想从另一个应用程序运行它.所以我重新运行python shell并尝试:
from proj.tasks import add
res = add.AsyncResult('0d4b36e3-a503-45e4-9125-cfec0a7dca30')
res.status
'PENDING'
res.get() # Error
Run Code Online (Sandbox Code Playgroud)
如何检索结果?
假设我有以下内容model.py:
class Book(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=100, unique=True)
Run Code Online (Sandbox Code Playgroud)
我在admin.py使用中注册此模型:
admin.site.register(Book)
Run Code Online (Sandbox Code Playgroud)
Book在admin中查看现有内容时,仅该name字段可见。
我的问题是:此页面也可以显示ID吗?
我发现的大多数答案都与管理员列表有关,而不是与对象实例页面有关。显示ID字段的一种方法是通过editable=False从模型定义中删除来使其可编辑。但是,我想使其保持只读状态。
我有一个自定义用户模型,它是由AbstractUser添加的自定义字段子类化的。
# model.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
ADM = 'admin'
MEMBER = 'member'
ROLE_CH = ((ADM, 'Administrator'), (MEMBER, 'Member'))
role = models.CharField(max_length=20, choices=ROLE_CH, blank=True)
Run Code Online (Sandbox Code Playgroud)
此模型也注册为默认身份验证模型 settings.py
# settings.py
AUTH_USER_MODEL = "main.CustomUser"
Run Code Online (Sandbox Code Playgroud)
然后admin.py根据文档,我创建了一个自定义表单,该表单扩展UserCreationForm并将其注册到自定义用户。
# admin.py
from django.contrib import admin
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.admin import UserAdmin
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = CustomUser
fields = UserCreationForm.Meta.fields + ('role',)
class CustomUserAdmin(UserAdmin):
add_form = …Run Code Online (Sandbox Code Playgroud) 我在Docker容器中运行Jenkins实例,并将其连接到Bitbucket存储库。当在线存储库中发生某些更改时,Jenkins将下载新的源。基于新的源代码,我想创建一个新的Docker映像,但这需要在主机上进行,因为它是我安装Docker的位置。
我还没有弄清楚如何在主机上运行某些东西,但是与此同时,我了解到Docker用于隔离进程,所以这是设计使然。有没有办法做到这一点?
所以到目前为止我有一个简单的python tkinter窗口,我正在添加文本,按钮等.
片段:
class Cfrm(Frame):
def createWidgets(self):
self.text = Text(self, width=50, height=10)
self.text.insert('1.0', 'some text will be here')
self.text.tag_configure('big', font=('Verdana', 24, 'bold'))
self.text["state"] = "disabled"
self.text.grid(row=0, column=1)
self.quitw = Button(self)
self.quitw["text"] = "exit",
self.quitw["command"] = self.quit
self.quitw.grid(row=1, column=1)
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
Run Code Online (Sandbox Code Playgroud)
问题是,我希望在窗口周围有大约15-20 px的边距,我到处寻找,我找不到解决方案.也
self.text.tag_configure('big', font=('Verdana', 24, 'bold'))
Run Code Online (Sandbox Code Playgroud)
不起作用.任何可能的解决方
我想知道控制移动应用程序 API 版本的最佳实践是什么。
要求
path('v1/auth/', include('authentication.urls')),
path('v2/auth/', include('authentication.urls2')), # Example
path('v1/api/', include('contentstudio.urls')),
Run Code Online (Sandbox Code Playgroud) django django-models django-views django-rest-framework drf-nested-routers
如何确定表中是否存在记录?我尝试的方式是进行SELECT查询,然后ResultSet使用以下内容计算行的行数:
rows = session.execute("SELECT * FROM test_table WHERE id=%s", ([<id_here>]))
if len(rows) == 0:
print "Does not exist"
Run Code Online (Sandbox Code Playgroud)
但是,ResultSet不支持len.在另一个答案中,他们建议使用SELECT COUNT(*)在另一个参考文献中强烈劝阻.有更标准的方法吗?
为了从Storefront主题中删除面包屑,文档声明要添加以下内容functions.php:
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );
Run Code Online (Sandbox Code Playgroud)
我在Storefront的子主题中尝试了这个,但它不起作用.追溯woocommerce_breadcrumb,它似乎被添加到storefront_content_top行动中(在文件中<storefront_dir>/inc/woocommerce/storefront-woocommerce-template-hooks.php.我注释掉相应的行,实际上面包屑是隐藏的.
但是,要以正确的方式执行此操作,我尝试使用子主题禁用它
remove_action( 'storefront_content_top', 'woocommerce_breadcrumb', 10 );
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我应该澄清一下,我在一个没有其他代码的新鲜儿童主题中测试它.
如何禁用儿童主题中的面包屑?
django ×3
python ×3
cassandra ×2
django-admin ×2
api ×1
celery ×1
django-views ×1
docker ×1
jenkins ×1
rest ×1
tkinter ×1
woocommerce ×1
wordpress ×1