10

ユーザーが の変数にいくつかの値を指定した後、いくつかの値を機械生成する方法はありますcookiecutter.jsonか?

私が尋ねる理由は次のとおりです。

  • プロンプトを表示する必要がある値の 1 つは、ユーザーが解決するのがかなり難しい
  • しかし、適切な値を生成する Python コードを書くのはとても簡単です。

そのため、ユーザー プロンプトを削除して、代わりに値を計算できるようにしたいと考えています。

私が試したこと:

  • pre_gen_project.pyその方法を示すサンプルファイルをオンラインで検索しました
  • cookiecutter の高度な使用方法のページを読む

コマンドラインでcookiecutterを使用しています:

cookiecutter path_to_template

トリックがありませんか?

4

1 に答える 1

5

ほんの数日前に、まさにこの機能が必要でした。私が思いついた解決策は、cookiecutter のラッパー スクリプトを作成することでした。

http://cookiecutter.readthedocs.io/en/latest/advanced_usage.html#calling-cookiecutter-functions-from-python

私のスクリプトは、Django プロジェクトで使用するランダムな文字列を生成します。私は自分のスクリプトをカットカットと呼びました:

#! /usr/bin/env python

from cookiecutter.main import cookiecutter

import os

rstring = ''.join([c for c in os.urandom(1024)
                   if c.isalnum()])[:64]

cookiecutter(
    'django-template',     # path/url to cookiecutter template
    extra_context={'secret': rstring},
)

cut-cutそのため、通常どおりプロセスを実行してステップ実行するだけです。唯一の違いは、ファイル内のsecretという名前のエントリに、渡されたextra_contextを介して提供される、スクリプトからrstringで生成された値が事前に入力されていることです。cookiecutter.json

コマンドラインからテンプレートを受け入れるようにスクリプトを変更することもできますが、私の使用法では常に同じテンプレートを使用するため、上記のコードに示されているように、ハードコードされた値「django-template」を渡すだけです。

于 2016-06-06T15:00:23.983 に答える