Python에서 Django 책 문자 적응 시스템 구현 방법(백엔드)

不言
풀어 주다: 2018-11-15 15:18:21
앞으로
2905명이 탐색했습니다.

이 기사의 내용은 Python에서 Django 책 문자 적응 시스템의 구현 방법(백엔드)에 관한 것입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

Django

Python에는 다양한 웹 프레임워크가 있습니다. 장고(Django)는 헤비급 선수 중 가장 대표적인 선수이다. 많은 성공적인 웹사이트와 앱이 Django를 기반으로 합니다.
Django는 Python으로 작성된 오픈 소스 웹 애플리케이션 프레임워크입니다.

Django 기본

버전: Django 1.10
Pycharm을 사용하여 FirstDjango라는 새 프로젝트 Django를 만듭니다.
FirstDjango 디렉토리, 템플릿 디렉토리, Manage.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/에 접속해 보면 성공 페이지를 볼 수 있지만 아직 앱이 실제로 실행되지는 않았습니다

Python에서 Django 책 문자 적응 시스템 구현 방법(백엔드)

언어 및 시간대를 수정하세요(setting.py)

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

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
로그인 후 복사

Django는 플라스크와 다르기 때문에 매번 수정할 필요가 없습니다. 코드를 수정하는 경우에는 프로그램을 다시 시작하세요.

http://127.0.0.1:7899/admin/, 백그라운드 관리에 액세스할 수 있습니다
여기에서 새 사용자 및 새 그룹을 추가할 수 있습니다. 새 사용자 및 그룹에 권한을 할당할 수 있지만 슈퍼 배포 권한을 실행할 수는 없습니다. users.Function
예: add_group 그룹에 '그룹 추가 가능'을 추가합니다. 일반 사용자를 생성하고 add_group 그룹에 속해 있으며 직원 상태를 확인합니다(사용자가 이 관리 사이트에 로그인할 수 있는지 표시).
일반 사용자로 백엔드 관리에 로그인하면 그룹 추가 옵션만 표시됩니다.

Python에서 Django 책 문자 적응 시스템 구현 방법(백엔드)

나만의 애플리케이션(앱) 만들기 -- book

터미널 입력

python manage.py startapp book
로그인 후 복사
은 현재 프로젝트에 책/디렉토리를 생성합니다

나만의 애플리케이션 파일을 만든 후 먼저 애플리케이션을 project 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 프레임워크 구조에서는 플라스크와 같은 역참조를 작성할 필요가 없습니다

# 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 파일 형식 사용 Database

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>
로그인 후 복사
문자 정보를 쿼리하는 방법은 두 가지가 있습니다

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
로그인 후 복사

사이트에서 데이터베이스의 운영

명령어를 통해 데이터베이스를 운영하는 것이 특히 불편합니다. 백그라운드 관리 웹페이지를 통해 데이터베이스의 동작을 구현합니다

먼저 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)
로그인 후 복사

Python에서 Django 책 문자 적응 시스템 구현 방법(백엔드)Books 정보에는 제목만 표시되고 캐릭터 정보에는 이름만 표시되며, 등록된 테이블 구조 수정

#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)
로그인 후 복사

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿