私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
いいね + フォロー + 集める = 学びました
前回の記事でもお話しましたが Django
操作するMySQL
このメソッドでは、モデルの作成方法と、データベースの追加、削除、変更、およびクエリの方法について説明します。ただし、データを変更するたびにコードを記述する必要があり、少々面倒です。
もっと簡単な方法はありますか?
いくつか、いくつか、Django
実はバックエンドというグラフィカルインターフェースが搭載されており、その上で様々なデータ内容を簡単に操作することができます。
次に、この組み込みバックエンドの使用方法について説明します。
実際に作成する Django
プロジェクト中に、バックグラウンドでルーティング アドレスがすでに構成されています。
前回の記事を段階的に実行すると、バックグラウンド ルーティングが削除される可能性があります。それは関係ありません、ただ埋め合わせてください。
プロジェクトを開く urls.py
ファイル、見つかりましたurlpatterns
この変数は、バックグラウンド ルーティングを埋めるために使用されます。
```パイソン
django.urls から path をインポート blog.views から blogIndex をインポート
urlpatterns = [ # その他のルートは省略 # 以下の文はバックグラウンドを設定するためのルーティング パスです ('admin/', admin.site.urls) ] ```
設定が完了したら、プロジェクトを開始し、ブラウザで開きます。 http://127.0.0.1:8000/admin/
背景にログインページが表示されます。
ログイン ページがある場合は、ログインするために対応するアカウントが必要です。
したがって、最初にスーパー管理アカウントを作成する必要があります。
ターミナルを開き、プロジェクト ディレクトリに入り、次のコマンドを入力してスーパー管理アカウントを作成します。
python manage.py createsuperuser
次に、端末はこの行の情報を返し、スーパー管理ユーザー名 (アカウント) を入力するように求めます。
Username (leave blank to use 'xxx'): admin
ここの「xxx」は私のコンピュータ名です。コロンの後にスーパー管理アカウントを入力できます。ここで入力したのは、 admin
。
ユーザー名を入力すると、引き続き電子メール アドレスの入力を求められます。
Email address: 123@qq.com
メールアドレスを入力後、パスワードを2回入力するよう求められます。
- Password:
- Password (again):
ここで入力するパスワードは 12345678
、あまりにも一般的なパスワードを賢く思い出させてくれますが、私は y と入力してそのような単純なパスワードを使い続けます。
- This password is too common.
- This password is entirely numeric.
- Bypass password validation and create user anyway? [y/N]: y
- Superuser created successfully.
見る Superuser created successfully.
この文は、アカウントが正常に作成されたことを意味します。
ブラウザで開くようになりました http://127.0.0.1:8000/admin/
、アカウント入力 admin
、パスワード入力 12345678
正常にログインできます。
以前はコードを使用してデータベースを操作していましたが、それほど便利ではありませんでした。
Django
アプリケーション モデルをバックグラウンドにバインドする方法を提供し、バックグラウンド インターフェイスでデータを直接操作できるようにします。
前回の記事から作成しました account
例として適用します。
存在する account
アプリケーションで見つかりましたadmin.py
ファイルに次のコードを記述します。
```パイソン
django.contrib から admin をインポートし、account.models から User をインポートします。
class UserAdmin(admin.ModelAdmin): # 表示内容 list_display = ['username', 'email']
admin.site.register(ユーザー、UserAdmin) ```
まずはここで紹介する必要がある admin
そしてUser
、したいからです。 account
アプリケーション モデルはバックエンドに関連付けられます。
というファイルを作成します UserAdmin
クラス、それに書いてくださいlist_display = ['username', 'email']
、背景ページに表示することを意味しますusername
そしてemail
この 2 つのフィールド。
やっと admin.site.register(User, UserAdmin)
に意味User
モデルとバックエンドは結合されています。
プロジェクトを実行して開きます http://127.0.0.1:8000/admin/
ログインすると、バインドしたモデルが表示されます。
「ユーザー テーブル」をクリックすると、データベース内のこのテーブルに関する情報が表示されます。
「追加」ボタンをクリックして、このテーブルに新しいデータを追加できます。
指定したデータを変更・削除することもできます。
バックグラウンド ページで変更されたデータは、データベース内のデータに直接影響します。
同様に、入れます blog
アプリケーション モデルはバックエンドに関連付けられます。ここでの操作は先ほどと同じですので説明は省略します。
```パイソン
django.contrib から admin をインポート blog.models から Article をインポート
class ArticleAdmin(admin.ModelAdmin): # 表示する内容 list_display = ['id', 'title']
admin.site.register(Article, ArticleAdmin) ```
記事を作成して見てみましょう。
「記事情報テーブル」の横にある追加ボタンをクリックし、以下の内容を入力します。
クリック SAVE
ボタンを押すと、データベースにデータが書き込まれ、「記事情報テーブル」の一覧ページに戻り、書き込まれたデータが表示されます。
プロジェクト全体の内容がよくわからない場合は、私がまとめたものを振り返ってください。「ジャンゴコラム」。
これまでの操作で、注意深い作業員であれば、インターフェイスがなぜ英語なのかなど、いくつかの問題に気づいたかもしれません。テーブル名の後に「s」が付いているのはなぜですか?記事作成時のオプションの [ユーザー] フィールドがユーザー名ではなく、なぜ入力されるのですか? User object(1)
?
次に、これらの問題を 1 つずつ解決していきます。
プロジェクトを開く settings.py
ファイル、見つかりましたLANGUAGE_CODE
、その値を次のように設定します'zh-hans'
。そして見つけますTIME_ZONE
に設定しますAsia/Shanghai
。
```パイソン
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'アジア/上海' ```
しかしこの時は ACCOUNT
そしてBLOG
まだ英語です、ここDjango
これら 2 つのアプリケーションのエイリアスを設定する必要があります。
設定は各アプリケーション独自のものです apps.py
ファイル、経由verbose_name
列名をカスタマイズするための変数。
による account
例として適用します。
```パイソン
django.appsからAppConfigをインポートする
クラス AccountConfig(AppConfig): デフォルト自動車フィールド = 'django.db.models.BigAutoField' 名前 = 'アカウント' 詳細名 = 'ユーザー管理' ```
blog
同じことが当てはまります。
```パイソン
django.appsからAppConfigをインポートする
クラス BlogConfig(AppConfig): デフォルト自動車フィールド = 'django.db.models.BigAutoField' 名前 = 'ブログ' 冗長名 = '記事管理' ```
この時点でページを更新すると、列名が変更されていることがわかります。
テーブル名の後の「s」は Django
この「s」を削除するには、テーブルのエイリアスも設定する必要があります。
各アプリケーションのモデル ファイル (models.py
) で構成されています Meta
情報提供verbose_name_plural
。
による account
例として適用します。
```パイソン
django.dbからモデルをインポートする
クラスUser(models.Model): id = models.AutoField(primarykey=True) # ユーザー名 = models.CharField('ユーザー名', maxlength=30, null=True,blank=True, unique=True) # パスワードpassword = models.CharField('password', max_length=30) # 電子メール email = models.EmailField('Email', unique=True, null= True、空白 = True)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
```
ページを更新すると、「User Table」の後の「s」が消えていることがわかります。
blog
同じ理由。
記事を追加するときは、記事の作成者を入力して選択する必要があります。記事テーブルの作成者はユーザー テーブルに関連付けられています。
著者を追加すると、ページには「ユーザーオブジェクト」という名前が直接表示されます。ユーザーの数が増えると、誰が誰であるかわかりません。
ユーザー名を表示する必要があります。
まずは改造してみましょう blog
表示するフィールド。
```パイソン
django.contrib から admin をインポート blog.models から Article をインポート
def get_author(obj): obj.user.username を返す
class ArticleAdmin(admin.ModelAdmin): # 表示されるコンテンツ # get here を使用できます author はユーザー名に置き換えられます。ここで一重引用符や括弧を追加する必要はありません。 # django はリストを使用しています表示する際、デフォルトでパラメータがメソッドに渡されます。 リスト表示 = ['id', 取得[著者、タイトル、内容]
得る著者.ショート説明 = '著者'
admin.site.register(Article, ArticleAdmin) ```
外部キーを get_author メソッドに関連付ける username
フィールドが表示されます。
この時点で、この記事の著者が誰であるかがわかります。ただし、編集ページにユーザー名を表示する必要もあります。
現時点で修正が必要です User
モデルだけで十分です。
```パイソン
django.dbからモデルをインポートする
クラスUser(models.Model): id = models.AutoField(primarykey=True) # ユーザー名 = models.CharField('ユーザー名', maxlength=30, null=True,blank=True, unique=True) # パスワードpassword = models.CharField('password', max_length=30) # 電子メール email = models.EmailField('Email', unique=True, null= True、空白 = True)
- class Meta:
- # 自定义表名
- db_table = 'user'
- # 表别名
- verbose_name = '用户表'
- verbose_name_plural = '用户表'
-
- # 返回用户名
- def __str__(self):
- return self.username
```
存在する account/models.py
最後に追加__str__
メソッド、リターンusername
。
このとき、ユーザー名は記事情報の編集ページで確認できます。
記事管理ページでは、記事を編集したい場合、「ID」欄をクリックするだけで編集ページにジャンプします。他のフィールドをクリックして編集ページにジャンプしたい場合は、手動で設定する必要があります。 blog/admin.py
たとえば、「TITLE」をクリックして編集ページにジャンプしたいとします。
```パイソン
class ArticleAdmin(admin.ModelAdmin): # 表示するコンテンツのリスト表示 = ['id', 取得author, 'title', 'content'] # ジャンプ可能なフィールドのリスト画面links = ['id', 'title'] # 一部のコードを省略します```
私はここにいます ArticleAdmin
に追加されましたlist_display_links = ['id', 'title']
、クリックを示します id
そしてtitle
編集ページにジャンプできます。
コンテンツを編集するとき、一部のフィールドを変更できないようにする必要があります。たとえば、ブログ ID は変更できません。
許容できる blog/admin.py
加えるreadonly_fields
変更できないフィールドを指定します。
```パイソン
class ArticleAdmin(admin.ModelAdmin): # 読み取り専用属性 readonly_fields = ['id'] # 一部のコードを省略します````
この時点で編集する場合、id フィールドの値は変更できません。
この記事は以上です。次回は、トップページのデータベースに情報を読み込む方法を紹介します。
いいね + フォロー + 集める = 学びました