玩转搭建 django 博客 one

116 阅读2分钟

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

增加博客文章后