当前位置: 首页 > news >正文

Django 后台与便签

1. 什么是后台管理

后台管理是网页管理员利用网页的后台程序管理和更新网站上网页的内容。各网站里网页内容更新就是通过网站管理员通过后台管理更新的。

2. 创建超级用户

1. python .\manage.py createsuperuser

2. 输入账号密码等信息

Username (leave blank to use 'sylviazhang'): admin

Email address: xxx@qq.com

Password: xxxxx

Password (again):xxxxx

This password is too short. It must contain at least 8 characters. This password is too common. Bypass password validation and create user anyway? [y/N]: y Superuser created successfully.

3. 打开网址 http://127.0.0.1:8000/admin/login/?next=/admin/

4. 输入username: admin, password: xxxxx, 点击login,就成功登录啦

3. 配置后台管理语言

登录成功后的页面如下:

配置后台管理语言 LANGUAGE_CODE

系统默认是 

LANGUAGE_CODE = 'en-us'TIME_ZONE = 'utc'

如果想改成中文: 

LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'   # utc会晚8小时

刷新网页,就变成了中文 

4. 定义模型

4.1 terminal 输入 django-admin startapp the_9 回车

4.2. 配置模型 tutorial子文件夹 settings.py 里面 INSTALLED_APPS 中括号里面添加 "the_9"

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',"the_3","the_5","the_6","the_7","the_8","the_9",
]

4.3. 创建模型 , the_9\models.py 

from django.db import models# Create your models here."""
问题 -- (问题是什么, 什么时间)模型 -- (回答问题, 关注度)
"""class Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField("发布日期")class Choice(models.Model):question = models.ForeignKey(Question,on_delete=models.CASCADE)choice_text = models.TextField()votes = models.IntegerField(default=0)

4.4. 接下来是迁移,迁移完成后再纳入后台管理系统 

4.4.1 terminal 输入 python .\manage.py 回车

(class15env) D:\Python\xxx\class15\tutorial>python .\manage.py

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[auth]
    changepassword
    createsuperuser

[contenttypes]
    remove_stale_contenttypes

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

[sessions]
    clearsessions

[staticfiles]
    collectstatic
    findstatic
    runserver

4.4.2 terminal 输入 python .\manage.py makemigrations回车

(class15env) D:\Python\xxx\class15\tutorial>python .\manage.py makemigrations
Migrations for 'the_8':
  the_8\migrations\0002_alter_entry_blog.py
    - Alter field blog on entry
Migrations for 'the_9':
  the_9\migrations\0001_initial.py
    - Create model Question
    - Create model Choice

4.4.3 迁移  terminal 输入 python .\manage.py migrate回车

(class15env) D:\Python\xxx\class15\tutorial>python .\manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, the_6, the_8, the_9
Running migrations:
  Applying the_8.0002_alter_entry_blog... OK
  Applying the_9.0001_initial... OK

5. 模型纳入后台管理

5.1 在the_9\admin.py配置 

from django.contrib import admin
from .models import Question, Choice# Register your models here.admin.site.register(Question)
admin.site.register(Choice)

5.2. 刷新浏览器, 可以看到Questions和Choices已经配置进来

6. 操作新加入的模型 

6.1 点击Questions后面的添加

6.2 输入内容,时间选择今天,现在,保存

6.3 出现Question object 对象是因为在 models.py我们没有添加 __str__

class Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField("发布日期")def __str__(self):return self.question_text

6.4 刷新浏览器 , 1月1号大家准备去什么地方就出来了

6.5 再添加一条Question 

6.6 同样给 Choice也加上 __str__

class Choice(models.Model):question = models.ForeignKey(Question,on_delete=models.CASCADE)choice_text = models.TextField()votes = models.IntegerField(default=0)def __str__(self):return self.choice_text

6.7 操作Choices, 点击Choice后面的添加, Question选择第一个 1月1号去什么地方?输入内容,保存

可以再添加一条 

7. 自定义字段展示

7.1 在the_9\admin.py 里面自定义

from django.contrib import admin
from .models import Question, Choice# Register your models here.class QuestionAdmin(admin.ModelAdmin):fields = ['pub_date','question_text']admin.site.register(Question,QuestionAdmin)
admin.site.register(Choice)

刷新网页, 可以看到 发布日期 调整到上面了

7.2 还可以进行分类设置 

class QuestionAdmin(admin.ModelAdmin):# fields = ['pub_date','question_text']fieldsets = [('日期', {'fields':['pub_date']}),('文本', {'fields': ['question_text']}),]

刷新网页

8.添加关联对象

9. 自定义列表页

在the_9\admin.py 中添加 list_display = ('pub_date','question_text')

class QuestionAdmin(admin.ModelAdmin):# fields = ['pub_date','question_text']fieldsets = [('日期', {'fields':['pub_date']}),('文本', {'fields': ['question_text']}),]list_display = ('pub_date','question_text')

刷新网页 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 苹果电脑Dock栏优化软件 mac功能亮点
  • 基于MATLAB编程的BP神经网络土地分类,bp神经网络详细原理
  • 2023年十篇具有影响力的人工智能研究论文
  • HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片
  • SQL常见面试题
  • C++:继承(这一篇就够了)
  • css视觉格式化模型
  • JavaScript 中常用事件
  • shell打印粉色小心心、颜文字心心
  • 高效文件管理:利用文件名关键字进行归类,批量移动文件
  • Cypress安装与使用教程(3)—— 软测大玩家
  • 应用在网络摄像机领域中的国产音频ADC芯片
  • 二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)
  • 漏洞复现-海康威视网络对讲广播系统远程命令执行漏洞(附漏洞检测脚本)
  • vue3 element plus el-table封装(二)
  • 【译】JS基础算法脚本:字符串结尾
  • 【Leetcode】104. 二叉树的最大深度
  • CentOS7简单部署NFS
  • flask接收请求并推入栈
  • Java应用性能调优
  • js
  • python3 使用 asyncio 代替线程
  • rabbitmq延迟消息示例
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SQLServer之创建数据库快照
  • vue中实现单选
  • 基于遗传算法的优化问题求解
  • 开源SQL-on-Hadoop系统一览
  • 一份游戏开发学习路线
  • 一个SAP顾问在美国的这些年
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​批处理文件中的errorlevel用法
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • (2022 CVPR) Unbiased Teacher v2
  • (4) PIVOT 和 UPIVOT 的使用
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (ZT)一个美国文科博士的YardLife
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (循环依赖问题)学习spring的第九天
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)Linux整合apache和tomcat构建Web服务器
  • .net Stream篇(六)
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @Repository 注解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [000-01-011].第2节:持久层方案的对比
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Algorithm][动态规划][简单多状态DP问题][按摩师][打家劫舍Ⅱ][删除并获得点数][粉刷房子]详细讲解