質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2079閲覧

【Django】ランダムで一意な文字列の作り方

t.z

総合スコア21

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/03/31 09:11

文字列 JaoU2h8kj11odw0R5skLのように、小文字、大文字、数字の混ざったランダムで一意な文字列をユーザーごとに付与したいと考えています。Djangoにそのような機能があるかわからず、調べてみました。

Pythonには、stringモジュールがあるので、これを使えばできそうなのですが、まずは、Djangoにあるのかどうかを優先させたほうが汎用性が増すかもしれないと思い、質問させていただきます。

Django3.1のDocumentation(encoding)smart_strforce_strがあるのですが、これは関係ないですか?

もし、関係があるのであれば、この's'とはなんでしょうか。

Djangoでいちばん使いやすい、ランダムで一意な文字列を作るメソッドにたどり着きたいです。uuidは別のところに使い、まぎらわしくなるのでとりあえず使用する方針ではないです。よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakaiY

2021/03/31 10:17

「Djangoでいちばん使いやすい、ランダムで一意な文字列を作るメソッド」はUUIDだと思うのですし、他で使っていてもまぎらわしくはならないと思うのですが、まぎらわしくなる理由を教えてください。
t.z

2021/03/31 10:42

ユーザにとって識別しやすさがあるていど必要であるので、文字数を減らし、小文字と大文字の両方を含めたいため。あるメソッドに使ったuuidとは違うメソッドの文字列であるとの認識をできるだけ容易にしたいため。 です。
guest

回答1

0

ベストアンサー

提示された、パスワードのような文字列を生成するのであれば、secretモジュールを使うのはどうでしょう。

https://docs.python.org/ja/3/library/secrets.html#module-secrets

ただし、UUIDと違って、同じ値が生成されないとすることはできないので、生成済みのものとの比較が必要になると思います。

Djangoには同様の機能は無いと思います。

投稿2021/03/31 10:51

TakaiY

総合スコア13790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t.z

2021/03/31 11:15

secretモジュールは思いつかなかったです。そのあたりで考えてみたいと思います。ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問