我有一个Dockerfile,我尝试激活python virtualenv之后,它应该在这个环境中安装所有依赖项.但是,一切仍然在全球范围内安装.我使用了不同的方法,但没有使用它们.我也没有任何错误.哪里有问题?
1.
ENV PATH $PATH:env/bin
2.
ENV PATH $PATH:env/bin/activate
3.
RUN . env/bin/activate
我还在Google Cloud上关注了python-runtime图像的Dockerfile配置示例,这与上面的内容基本相同.
设置这些环境变量与运行source/env/bin/activate相同.
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
此外,ENV VIRTUAL_ENV /env它是什么意思和使用方式?
我想在 Google App Engine 上托管我的应用程序,并拥有一个用于数据库的 Google SQL 实例。该应用程序的主要部分是使用 Django Rest Framework 构建的 API。当我需要修改数据库的架构时,我向 Google Cloud 支持人员询问了在生产中进行迁移的最佳实践。由于我是 Web 开发的新手,也许这里的任何专家都有类似的经验,并且可以验证建议的过程是否是我真正可以遵循的?
对于数据库迁移最佳实践,您可以为 Cloud SQL 数据库创建单独的开发/测试/备份实例。例如,假设您的生产数据库实例是 DB1,创建一个开发实例 DB2,其中包含 DB1 的所有表。之后,将您的应用程序配置为临时指向 DB2 实例。请确保两个实例同步并更新。然后,部署指向 DB2 的应用程序的新版本,以便您可以将 DB1(添加新表、列)更新为生产环境中的官方数据库实例。然后您可以再次将其指向 DB1 并更新 DB2。
django google-app-engine google-cloud-sql google-cloud-platform
我正在使用BigQuery中的GoogleAnalytics数据。我想输出2列:特定事件操作(点击)和自定义维度(基于会话)。所有这些,使用标准SQL。我不知道该怎么做。文档也没有帮助。请帮我。这是我正在尝试的:
SELECT
(SELECT MAX(IF(index=80, value, NULL)) FROM UNNEST(customDimensions)) AS is_app,
(SELECT hits.eventInfo.eventAction) AS ea
FROM
`table-big-query.105229861.ga_sessions_201711*`, UNNEST(hits) hits
WHERE
totals.visits = 1
AND _TABLE_SUFFIX BETWEEN '21' and '21'
AND EXISTS(SELECT 1 FROM UNNEST(hits) hits
WHERE hits.eventInfo.eventCategory = 'SomeEventCategory'
)
Run Code Online (Sandbox Code Playgroud) 总的来说,我对 Django 很陌生,所以请不要严厉地评判我。
我有一个自定义用户模型,并使用 DRF 来创建用户配置文件。我在create_user(BaseUserManager 的方法)中规范化电子邮件。我找不到如何标准化 API 序列化程序中电子邮件字段的值的方法。基本上,如果我传递数据库中已存在的电子邮件,但域中仅包含大写字母,它将通过序列化程序的验证,但在以下情况后会遇到完整性错误:
duplicate key value violates unique constraint "accounts_user_email_key"
DETAIL: Key (email)=(email@example.com) already exists.
这是我的UserManager方法的简化版本:
class UserManager(BaseUserManager):
def create_user(self, email, first_name, last_name, password):
#some validation logic
#...
user = self.model(
email=self.normalize_email(email),
first_name=first_name,
last_name=last_name
)
user.set_password(password)
user.save()
return user
#other stuff...
Run Code Online (Sandbox Code Playgroud)
这是一个序列化器本身:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = ('email', 'first_name', 'last_name', 'password')
extra_kwargs = {k: {'write_only': True} for k in fields}
#some password validation...
def create(self, …Run Code Online (Sandbox Code Playgroud)