目次
sqlite3 ファイル タイプ データベースを使用します
ホームページ バックエンド開発 Python チュートリアル PythonでのDjango書籍文字適応システムの実装方法(バックエンド)

PythonでのDjango書籍文字適応システムの実装方法(バックエンド)

Nov 15, 2018 pm 03:18 PM
mysql python sqlite windows

この記事の内容は、Django ブックの文字適応システムの Python での実装方法 (バックエンド) に関するもので、一定の参考価値がありますので、困っている友人は参考にしていただければ幸いです。

Django

Python にはさまざまな Web フレームワークが存在します。ジャンゴはヘビー級選手の代表選手です。成功している Web サイトやアプリの多くは Django に基づいています。
Django は、Python で書かれたオープンソースの Web アプリケーション フレームワークです。

Django の基本

バージョン: Django 1.10
Pycharm を使用して、FirstDjango という名前の新しいプロジェクト Django を作成します
FirstDjango ディレクトリ、テンプレート ディレクトリ、管理ファイルがあります.py ファイル
flask_script コマンド ラインと同様に manage.py ファイルを実行します

 python manage.py makemigrations   #相当于初始化数据库表
 python manage.py migrate #相当于数据库迁移命令,这里的数据库存储都是放在db.sqlite3文件里
 python manage.py createsuperuser #创建超级用户,生成db.sqlite3文件
 python manage.py runserver 7899 #默认端口号:8000
ログイン後にコピー

http://127.0.0.1:7899/ にアクセスすると、「動作しました」ページが表示されますが、APP は動作していません実際にはまだ実行されていません

PythonでのDjango書籍文字適応システムの実装方法(バックエンド)

言語、タイムゾーンを変更する (setting.py)

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
ログイン後にコピー

Django は再起動する必要がないという点で flask とは異なりますコードを変更するたびにプログラムが変更されます。

http://127.0.0.1:7899/admin/、バックグラウンド管理にアクセスできます
ここで、新しいユーザーと新しいグループを追加できます。新しいユーザーとグループに権限を割り当てることはできますが、権限を割り当てることはできません。スーパーユーザーの配布許可機能を実行
例: add_groupグループに「グループ追加可能」を追加
通常のユーザーを作成し、add_groupグループに所属させ、従業員のステータスを確認します(ユーザーがこのグループにログインできるかどうかを示します)管理サイト)。
通常のユーザーとしてバックグラウンド管理にログインする場合、グループを追加するオプションのみが表示されます。

PythonでのDjango書籍文字適応システムの実装方法(バックエンド)

独自のアプリケーション (アプリ) を作成する -- 本

ターミナル入力

python manage.py startapp book
ログイン後にコピー

は、現在のプロジェクトにブック/ディレクトリを生成します

独自のアプリケーション ファイルを作成したら、まずアプリケーションの settings.py をプロジェクトに登録します

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'book',
]
ログイン後にコピー

データベース構造 (model.py) の記述を開始します

まず、データベース テーブルが何であるかを決定します:書籍、キャラクター。
次に、各テーブルの構造を決定します。本の属性は、ID、タイトル、発行時刻、要約、表紙です。キャラクター属性: ID、名前、性別、紹介文、本。
最後にテーブル間の関係を決定します。ブックには複数の文字が存在します。文字データベース テーブルに外部キーを書き込みます。

Django フレームワーク構造では、flask のような逆参照を記述する必要はありません

# book/models.py
from django.db import models

# Create your models here.
class BookInfo(models.Model):
    # 这里不需要写id,Django框架默认会生成id,并作为主键pk
    btitle = models.CharField(max_length=100,unique=True,verbose_name='书籍标题')     # 表示在后台管理中这一栏的中文显示
    bpub_time  = models.DateField(verbose_name='出版时间')
    # bcontent = models.TextField(default='摘要',verbose_name='书籍摘要')
    # bimg = models.ImageField(default=None,upload_to='static/uploads/')
    class Meta:    ##表示这个数据库表在后台中的中文显示,因为英语区分单复数,所以需要写上单复数的中文显示
        verbose_name = '书籍信息'
        verbose_name_plural = '书籍信息'
    def __str__(self):
        return '%s' %(self.btitle)

class HeroInfo(models.Model):
    hname = models.CharField(max_length=50,verbose_name='人物姓名')
    hgender = models.BooleanField(default=True,verbose_name='人物性别')
    # 任务简介
    hcontent = models.TextField(verbose_name='人物简介')
    # 多的一端写外键
    hbook = models.ForeignKey(BookInfo,verbose_name='所属书籍')
    @property
    def gender(self):
        if self.hgender:
            return '男'
        else:
            return '女'
    class Meta:
        verbose_name = '人物信息'
        verbose_name_plural = '人物信息'
    def __str__(self):
        return '%s' %(self.hname)
ログイン後にコピー

sqlite3 ファイル タイプ データベースを使用します

Django はデフォルトで sqlit3 データベースを使用します。これはプロジェクトの settings.py ファイルで確認できます

DATABASES = {
    'default': {
         'ENGINE': 'django.db.backends.sqlite3',
         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
     }
}
ログイン後にコピー

models.py ファイルを作成した後アプリケーションブックでは、データベースの作成を開始します

python manage.py makemigrations   
python manage.py migrate
ログイン後にコピー

sqlite3 データベーステーブルの入力方法

python manage.py shell    #打开类似数据库交互命令的窗口
ログイン後にコピー

1. データベースへのデータの追加

>>> from book.models import BookInfo,HeroInfo
>>> from datetime import date
>>> book1 = BookInfo(btitle='小王子',bpub_time=date(1942,5,13))
>>> book1.save()
ログイン後にコピー

2. 検索データベース
#

>>> BookInfo.objects.all()
<queryset>]></queryset>
ログイン後にコピー
指定した情報を元に検索

#

>>> book = BookInfo.objects.get(id=1)
>>> book.btitle
'小王子'
ログイン後にコピー
##3. データベースデータの変更##
>>> book1.btitle = '安徒生童话'
>>> book1.save()
>>> book = BookInfo.objects.get(id=1)
>>> book.btitle
'安徒生童话'
ログイン後にコピー
##4. データベースデータの削除


>>> book = BookInfo.objects.get(id=1)
>>> book.delete()
(1, {'book.HeroInfo': 0, 'book.BookInfo': 1})
>>> book = BookInfo.objects.all()
>>>
ログイン後にコピー
5. データベーステーブル間の関連付け

まず、外部キーなしでデータベーステーブル情報を作成します

>>> book1 = BookInfo(btitle='小王子',bpub_time=date(1942,5,13))
>>> book2 = BookInfo(btitle='睡美人',bpub_time=date(1952,6,29))
>>> book1.save()
>>> book2.save()
ログイン後にコピー
次に、外部キー付きデータベーステーブル情報を作成します

1. に従って文字を直接作成しますデータテーブル構造

>>> hero1 = HeroInfo(hname='小王子',hgender=True,hcontent='小王子没有被成人那骗人的世界所征服',hbook=book1)
>>> hero1 = HeroInfo(hname='玫瑰花',hgender=False,hcontent='玫瑰花的虚荣心伤害了小王子对她的感情',hbook=book1)
>>> hero1.save()
>>> hero2.save()
ログイン後にコピー
2. 既知の書籍に対応する文字情報に基づいて文字を追加します


>>> book1 = BookInfo.objects.get(id=2)
>>> book1.heroinfo_set.all()
<queryset>, <heroinfo:>]>
>>> book1.heroinfo_set.create(hname='小狐狸',hgender=True,hcontent='肉眼看不见事务的本质,只有用心灵才能洞察一切')
<heroinfo:></heroinfo:></heroinfo:></queryset>
ログイン後にコピー
文字情報を問い合わせるには 2 つの方法があります

1. に従って直接検索します。文字データベーステーブルへ
#

>>> HeroInfo.objects.all()
<queryset>, <heroinfo:>]></heroinfo:></queryset>
ログイン後にコピー
2. データオブジェクトとの関係に基づいて検索

#

>>> book1 = BookInfo.objects.get(id=2)
>>> book1.heroinfo_set.all()
<queryset>, <heroinfo:>]>
>>></heroinfo:></queryset>
ログイン後にコピー

mysql ファイルタイプのデータベースを使用


# #setting.py ファイルのデータベース構成を変更します

# Database
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'firstdjango',    #数据库名称,若没有的话,先在数据库中建立
        'USER': 'root',
        'PASSWORD': 'sheen',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}
ログイン後にコピー

ここでデータベースを直接初期化すると、エラーが報告されます

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
ログイン後にコピー
__init__.py ファイルを設定する必要がありますプロジェクトの

# \PycharmProjects\FristDjango\FristDjango\__init__.py
import pymysql
pymysql.install_as_MySQLdb()
ログイン後にコピー

ターミナル上でmysqlデータベース内のコマンドを実行すると、すべてのテーブル情報が表示されます
#

 python manage.py makemigrations  
 python manage.py migrate
ログイン後にコピー
サイトによるデータベースの操作


コマンドでデータベースを操作するのは特に不便なので、バックグラウンド管理Webページからデータベースの操作を実装します

まず、admin.pyファイルにデータベーステーブルを登録する必要があります

#book/admin
from django.contrib import admin
from book.models import BookInfo,HeroInfo
# Register your models here.
admin.site.register(BookInfo)
admin.site.register(HeroInfo)
ログイン後にコピー

##書籍情報はタイトルのみ、文字情報は名前のみで見にくいです 登録したテーブル構造を変更してください

#book/admin.py
from django.contrib import admin
from book.models import BookInfo,HeroInfo
# Register your models here.
class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['btitle','bpub_time']
class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['hname','hgender','hcontent','hbook']   #显示栏
    list_filter = ['hbook'] #过滤器
    search_fields = ['hname','hbook']   #搜索栏
    list_per_page = 2   #每页显示多少条数据
admin.site.register(BookInfo,BookInfoAdmin)
admin.site.register(HeroInfo,HeroInfoAdmin)
ログイン後にコピー

#書籍テーブルに文字を直接追加する方法、Web ページの表示効果:書籍の詳細ページにジャンプすると、文字を直接追加できますPythonでのDjango書籍文字適応システムの実装方法(バックエンド)HeroInline クラスを追加し、BookInfoAdmin クラスを変更します

# book/admin.py
class HeroInline(admin.TabularInline):
    model = HeroInfo
    extra = 2   #每次增加两个添加人物的表单
    

class BookInfoAdmin(admin.ModelAdmin):
    list_display = ['btitle','bpub_time']
    inlines = [HeroInline]
ログイン後にコピー

PythonでのDjango書籍文字適応システムの実装方法(バックエンド)

以上がPythonでのDjango書籍文字適応システムの実装方法(バックエンド)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

vscodeはMacで使用できます vscodeはMacで使用できます Apr 15, 2025 pm 07:45 PM

VSコードはMACOでうまく機能し、開発効率を向上させることができます。インストールと構成の手順には、インストールとコードと構成が含まれます。言語固有の拡張機能(JavaScriptのESLINTなど)をインストールします。拡張機能を慎重に取り付けて、過度のスタートアップが遅くなることを避けます。 GIT統合、ターミナル、デバッガーなどの基本的な機能を学びます。適切なテーマとコードフォントを設定します。潜在的な問題に注意:拡張互換性、ファイル許可など。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードはPythonを実行できます VSコードはPythonを実行できます Apr 15, 2025 pm 08:21 PM

はい、VSコードはPythonコードを実行できます。 VSコードでPythonを効率的に実行するには、次の手順を完了します。Pythonインタープリターをインストールし、環境変数を構成します。 VSコードにPython拡張機能をインストールします。コマンドラインを介してVSコードの端末でPythonコードを実行します。 VSコードのデバッグ機能とコードフォーマットを使用して、開発効率を向上させます。優れたプログラミング習慣を採用し、パフォーマンス分析ツールを使用してコードパフォーマンスを最適化します。

VSCODEでコードを実行する方法 VSCODEでコードを実行する方法 Apr 15, 2025 pm 09:51 PM

コードでコードを実行すると、コードが6つしか必要ありません。1。プロジェクトを開きます。 2。コードファイルを作成して書き込みます。 3.端子を開きます。 4.プロジェクトディレクトリに移動します。 5。適切なコマンドを使用してコードを実行します。 6。出力を表示します。

使用されるVSCODEはどの言語ですか 使用されるVSCODEはどの言語ですか Apr 15, 2025 pm 11:03 PM

Visual Studio Code(VSCODE)はMicrosoftによって開発され、電子フレームワークを使用して構築され、主にJavaScriptで記述されています。 JavaScript、Python、C、Java、HTML、CSSなどを含む幅広いプログラミング言語をサポートし、拡張を通じて他の言語のサポートを追加できます。

See all articles