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')

刷新网页 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314473.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android ImageView的Bitmap在scaleType情况下Bitmap顶部与底部RectF坐标,Kotlin

Android ImageView的Bitmap在scaleType情况下&#xff0c;Bitmap顶部与底部RectF坐标&#xff0c;Kotlin 通常&#xff0c;在ImageView设置scaleType后&#xff0c;Android会把原始图片通过缩放放在ImageView里面&#xff0c;例如&#xff1a; <ImageViewandroid:id"id…

龙迅#LT7911UX适用于Type-C/DP1.4a/EDP转MIPI或LVDS应用方案,分辨率高达8K30HZ ,可支持图像处理和旋转功能!

1. 产品描述 LT7911UX是一款高性能Type-C/DP1.4a/EDP转MIPI或LVDS芯片。 HDCP RX作为HDCP直放站的上游&#xff0c;可以与其他芯片的HDCP TX配合&#xff0c;实现直放站功能。 对于 DP1.4a 输入&#xff0c;LT7911UX可配置为 1/2/4 通道。自适应均衡使其适用于长电缆应用&…

代码随想Day55 | 392.判断子序列、115.不同的子序列

392.判断子序列 第一种思路是双指针&#xff0c;详细代码如下&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {//双指针if(s.empty()&&t.empty()) return true;int i0,j0;while(i<t.size()){if(s[j]t[i]) j;if(js.size()) return t…

FPGA - 240102 - FPGA期末速成

TAG - F P G A 、期末、速成 FPGA、期末、速成 FPGA、期末、速成 // – 习题1 – //CPLD&#xff08;Complex Programmable Logic Device&#xff09;是 Complex PLD 的简称&#xff0c;一种较 PLD 为复杂的逻辑元件。CPLD 逻辑资源多寄存器少&#xff0c;FPGA 逻辑弱而寄存器…

深度学习|2.11 向量化vectorization

2.11 向量化的作用 向量化可以使得向量中的每一个维度的数据进行并行计算&#xff0c;从而加快了神经网络的计算速度。 验证 其他

最优化总结

最优化 引入问题例1 运输问题例2 生产计划问题例3 指派问题例4 数据拟合问题 线性规划向量和矩阵范数拟合线性拟合非线性拟合 无约束最优化问题的基本思想实验plot函数meshgrid函数linprog函数 引入问题 例1 运输问题 例2 生产计划问题 例3 指派问题 例4 数据拟合问题 线性规划…

C#线程基础(线程启动和停止)

目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading&#xff0c;引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托&#xff0c;当线程开始执行时&#xff0c…

每日算法打卡:递归实现指数型枚举 day 1

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析 原题链接 92. 递归实现指数型枚举 题目难度&#xff1a;简单 题目描述 从 1 ∼ n 1 \sim n 1∼n 这 n 个整数中随机选取任意多个&#xff0c;输出所有可能的选择方案…

理解SQL中not in 与null值的真实含义

A not in B的原理是拿A表值与B表值做是否不等的比较, 也就是a ! b. 在sql中, null是缺失未知值而不是空值。 当你判断任意值a ! null时, 官方说, “You cannot use arithmetic comparison operators such as , <, or <> to test for NULL”, 任何与null值的对比都将返…

电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?

在现代互联网中&#xff0c;代理IP已成为许多用户保护隐私和上网安全的重要手段。通过设置代理IP&#xff0c;用户可以隐藏自己的真实IP地址&#xff0c;提高上网的安全性&#xff0c;同时保护个人信息不被泄露。本文将详细介绍如何设置代理IP上网以及如何隐藏电脑的真实IP地址…

CSS 纵向顶部往下动画

<template><div class"container" mouseenter"startAnimation" mouseleave"stopAnimation"><!-- 旋方块 --><div class"box" :class"{ scale-up-ver-top: isAnimating }"><!-- 元素内容 -->&…

如何使用Git进行代码版本管理

目录 建立仓库 分支管理 推送代码 问题 建立仓库 先在远程代码托管平台&#xff08;如GitHub、GitLab等&#xff09;上创建一个新的仓库 使用命令行或终端&#xff0c;进入你的本地项目目录 如果项目还没有使用Git进行版本控制&#xff0c;可以通过执行以下命令来初始…