>백엔드 개발 >파이썬 튜토리얼 >Python에서 Django 책 문자 적응 시스템 구현 방법(백엔드)

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

不言
不言앞으로
2018-11-15 15:18:212949검색

이 기사의 내용은 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으로 문의하시기 바랍니다. 삭제