Appearance
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 ,输入用户名、密码。