Skip to content

Django

Django 是一个成熟的 Python 框架,主打 HTML 模板替换变量生成页面,如果模板数量多、重,最好单独做前端项目。

  • 自带 AdminSite 插件,输入用户名、密码登录
  • 写个模型,生成表, AdminSite 插件可以自动生成列表页、新增页、修改页、删除页,考虑到字段格式化就没有详情页
  • 字段 URL 在列表页无法点击,在修改页才能点击
  • 如果需求复杂,这种自动生成的页面不好用,还是要写页面
  • 自己写表单很容易实现 CSRF 防御, {% csrf_token %}

第一步

安装 Python 。

安装 Django 。

pip install Django

python -m django --version

生成项目 mysite 并测试。

django-admin startproject mysite

cd mysite

python manage.py runserver

关掉开发服务 runserver。

第二步

生成应用 blog 。

python manage.py startapp blog

增加模型, Author 和 Post 为一对多关系。

# blog/models.py

from django.db import models

# Create your models here.

class Author(models.Model):
    name = models.CharField(max_length=100)

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

如果将 Author 和 Post 设计为多对多关系,那后续设计就复杂了。简单实现就代码量小,和现实差异大,上手容易。复杂实现就代码量大,和现实差异小,上手麻烦。

在 AdminSite 注册模型。

# blog/admin.py

from django.contrib import admin

# Register your models here.

from .models import Author, Post

admin.site.register(Author)

admin.site.register(Post)

安装应用 blog 。

# mysite/settings.py

# ...

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

# ...

生成迁移文件并执行,默认生成 db.sqlite3 数据库文件。

python manage.py makemigrations

python manage.py migrate

第三步

创建管理员,输入用户名、邮箱、密码。

python manage.py createsuperuser

启动开发服务 runserver 。

python manage.py runserver

访问 http://127.0.0.1:8000/admin ,输入用户名、密码。

联系 math@baima.site