1、创建 django 工程
django-admin startproject mysite
cd mysite
python3 manage.py startapp myblog
2、修改setting.py
汉化、时区、mysql设置
# 设置语言:中文简体
LANGUAGE_CODE = 'zh-hans'
# 设置时区:亚洲/上海时区
TIME_ZONE = 'Asia/Shanghai'
# 设置msyql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'django',
'USER': 'root',
'PASSWORD': 'rootroot',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
# 增加博客应用
INSTALLED_APPS = [
...
'myblog'
]
app必须包裹进来,否则找不到我们的界面
3、迁移mysql
mysql> create database django;
python3 manage.py migrate
4、创建超级用户
python3 manage.py createsuperuser
5、创建blog模型
在myblog的models.py中添加如下代码
from django.db import models
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=200, verbose_name="文章标题")
pub_date = models.DateTimeField(verbose_name="发布日期")
data = models.TextField(max_length=200, verbose_name="文章内容")
再次执行 migrate 发现报错
即使添加了模型,admin并不知道你的模型在哪
需要告诉admin,模型已经添加了
把Article这个模型,纳入到admin这个界面去管理
需要去注册模型
6、注册模型
1、先在 admin.py 编写注册逻辑
from django.contrib import admin
# Register your models here.
from myblog.models import Article
# 设置admin界面展示的样式
class ArticleAdmin(admin.ModelAdmin):
# tuple or list
list_display = ('title',)
admin.site.register(Article, ArticleAdmin)
2、更新modal
python3 manage.py makemigrations
执行makemigrations 后 自动创建此文件0001_initial.py
# Generated by Django 4.2.7 on 2023-11-09 14:39
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Article',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=200, verbose_name='文章标题')),
('pub_date', models.DateTimeField(verbose_name='发布日期')),
('data', models.TextField(max_length=200, verbose_name='文章内容')),
],
),
]
3、同步数据
python3 manage.py migrate
| 数据库更新之前 | 数据库更新之后 |
|---|---|
很明显django数据库中多个一张叫myblog_article的表,看下这个表
表结构和更新modal后创建的文件0001_initial.py结构相同
7、启动 django
python3 manage.py runserver 9999
打开 http://127.0.0.1:9999/admin
增加博客文章后