【CRUD】【Django】Python 프레임워크 Django를 사용해 CRUD 사이트를 작성한다~2~
시리즈 일람 (전 기사 완성하면 갱신해 갑니다)
모델 만들기
장고에는 ORM (객체 관계 매핑)이 있습니다.
ORM은 프로그램의 소스 코드와 데이터베이스의 데이터를 상호 변환하는 기능을 말합니다.
Django의 경우 modele.py에 Pythn으로 작성합니다.
그럼, Post(포스트 기능의) 모델을 써 갑니다.
/crud/blog/models.pyfrom django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
class Post(models.Model):
# タイトル CHAR 最大100文字
title = models.CharField(max_length=100)
# 内容 テキスト
content = models.TextField()
# 著者 外部キー制約(1対多リレーション) ユーザ 親データと共に子データも削除
author = models.ForeignKey(User, on_delete=models.CASCADE)
# 投稿日 日付型 現在時刻
date_posted = models.DateTimeField(default=timezone.now)
# 管理画面の表示設定 タイトルを表示
def __str__(self):
return self.title
마이그레이션
(crud-_w5mSGH2) C:\django\crud>python manage.py makemigrations
Migrations for 'blog':
blog\migrations\0001_initial.py
- Create model Post
(crud-_w5mSGH2) C:\django\crud>
다음 파일이 자동으로 생성됩니다.
편집할 필요가 없습니다.
/crud/blog/migrations/0001_initial.py# Generated by Django 3.1.1 on 2020-10-12 12:32
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Post',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('content', models.TextField()),
('date_posted', models.DateTimeField(default=django.utils.timezone.now)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]
마이 그레이트
(crud-_w5mSGH2) C:\django\crud>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying blog.0001_initial... OK
Applying sessions.0001_initial... OK
(crud-_w5mSGH2) C:\django\crud>
데이터 등록
본래의 블로그라면 투고 화면에서 기사를 투고합니다만, 아직 구현하고 있지 않습니다.
Djngo에는 관리 화면이 있으며 거기에서 데이터를 등록할 수 있습니다.
그래서 일단 관리 화면에서 기사 데이터를 등록하려고합니다.
관리 화면에 게시물 표시
관리 화면에 표시시킬 내용을 Django에 알려야 합니다. 다음 파일을 수정합시다.
crud/blog/admin.pyfrom django.contrib import admin
from .models import Post
admin.site.register(Post)
관리 사용자 만들기
관리 화면에 로그인하기 위한 관리자 사용자를 생성합니다.
사용자: admin
비밀번호:pass
(crud-_w5mSGH2) C:\django\crud>python manage.py createsuperuser
ユーザー名 (leave blank to use 'wmgoz'): admin
メールアドレス: ***@***.com #←自分のメアドを使用してください
Password:
Password (again):
このパスワードは短すぎます。最低 8 文字以上必要です。
このパスワードは一般的すぎます。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
(crud-_w5mSGH2) C:\django\crud>
관리 화면에 로그인
개발 서버를 시작하고 관리 화면에 로그인합니다.
python manage.py runserver
그런 다음 관리 화면 "htp://127.0.0.1:8000/아d민/"에 액세스하십시오.
다음과 같은 관리 화면이 표시되었습니다.
데이터를 등록해 보세요!
관리 화면의 Posts 옆에 있는 + 추가를 클릭하여 데이터 입력으로 이동합니다.
데이터① 등록:
데이터② 등록:
두 기사의 게시가 완료되었습니다.
오늘은 여기까지 합니다. 고마워요.
Reference
이 문제에 관하여(【CRUD】【Django】Python 프레임워크 Django를 사용해 CRUD 사이트를 작성한다~2~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/oboerarenai_user/items/af168aa59cb0d8426100
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
class Post(models.Model):
# タイトル CHAR 最大100文字
title = models.CharField(max_length=100)
# 内容 テキスト
content = models.TextField()
# 著者 外部キー制約(1対多リレーション) ユーザ 親データと共に子データも削除
author = models.ForeignKey(User, on_delete=models.CASCADE)
# 投稿日 日付型 現在時刻
date_posted = models.DateTimeField(default=timezone.now)
# 管理画面の表示設定 タイトルを表示
def __str__(self):
return self.title
(crud-_w5mSGH2) C:\django\crud>python manage.py makemigrations
Migrations for 'blog':
blog\migrations\0001_initial.py
- Create model Post
(crud-_w5mSGH2) C:\django\crud>
# Generated by Django 3.1.1 on 2020-10-12 12:32
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Post',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('content', models.TextField()),
('date_posted', models.DateTimeField(default=django.utils.timezone.now)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
]
(crud-_w5mSGH2) C:\django\crud>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying blog.0001_initial... OK
Applying sessions.0001_initial... OK
(crud-_w5mSGH2) C:\django\crud>
from django.contrib import admin
from .models import Post
admin.site.register(Post)
(crud-_w5mSGH2) C:\django\crud>python manage.py createsuperuser
ユーザー名 (leave blank to use 'wmgoz'): admin
メールアドレス: ***@***.com #←自分のメアドを使用してください
Password:
Password (again):
このパスワードは短すぎます。最低 8 文字以上必要です。
このパスワードは一般的すぎます。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
(crud-_w5mSGH2) C:\django\crud>
python manage.py runserver
Reference
이 문제에 관하여(【CRUD】【Django】Python 프레임워크 Django를 사용해 CRUD 사이트를 작성한다~2~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oboerarenai_user/items/af168aa59cb0d8426100텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)