栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django笔记

目录
  • 1ORM增删改查
    • 1.1增
    • 1.2删
    • 1.3改
      • 1.3.1修改一条数据
      • 1.3.2修改多条数据
    • 1.4查
      • 1.4.1filter过滤
  • 2url传参
  • 3admin管理后台
    • 3.2admin管理后台快速美化
    • 3.3admin管理后台操作?
      • 3.3.1修改管理后台header显示名称,APP名称显示中文(自定义)
      • 3.3.2注册模型(数据表)
      • 3.3.3Model设置
      • 3.3.4逻辑删除 / 修改商品状态

1ORM增删改查 1.1增 1.2删 1.3改 1.3.1修改一条数据
user = User.objects.get(id=1)
user.username = 'nick'
user.is_active = True
user.save()
1.3.2修改多条数据
User.objects.filter(id=1).update(username="nick",is_active=True)
1.4查 1.4.1filter过滤

1.__contains(包含)

User.objects.filter(name__contains="张")  # 查询名字包含张的用户

2.不等于

User.objects.filter(~Q(status=9))  # 查询状态不为9的用户
2url传参
http://localhost:8000/url?param1=value1¶m2=value2¶m3=value3

# 在views.py中提取参数
param = request.GET.get('param1',None)  # request.GET.get('param1','')
3admin管理后台

参考

Django 管理员界面 https://www.cainiaojc.com/django/django-admin-interface.html

在项目目录运行以下代码后,即可直接通过localhost:8000/admin进入管理员后台。

python manage.py createsuperuser

python manage.py migrate
3.2admin管理后台快速美化

1.下载依赖

清华源: https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣源: http://pypi.douban.com/simple
阿里源: http://mirrors.aliyun.com/pypi/simple
中国科学技术大学源: http://pypi.mirrors.ustc.edu.cn/simple/

pip install django-simpleui -i https://pypi.tuna.tsinghua.edu.cn/simple

2.配置settings.py,然后重启

INSTALLED_APPS = [
 'simpleui',
 'django.contrib.admin',
 ....
]
3.3admin管理后台操作? 3.3.1修改管理后台header显示名称,APP名称显示中文(自定义)

#blog/admin.py

admin.site.site_header = 'Blog Administration'


#blog/app.py

from django.apps import AppConfig


class AppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'app'
    verbose_name = 'APP名称'
3.3.2注册模型(数据表)

#blog/admin.py

from django.contrib import admin
from MySelfAPP.models import Article

# Register your models here.
admin.site.register(Article)
...
3.3.3Model设置

1.名称显示中文

class User(models.Model):
	# 自动设置自增主键列:id
    userName = models.CharField('用户昵称',max_length=50)  # 加入'用户昵称'属性,管理端即可将该列名称显示为中文
	grade = models.ForeignKey(to=Grade, on_delete=models.CASCADE,null=True)
	
    def toDict(self):
        return {
            'id':self.id,
            'userName':self.userName,
        }
    
    class Meta:
        db_table = 'user'  # 表名
        # 复数形式,如果只设置verbose_name,在Admin会显示为“用户表s”
        verbose_name_plural = "用户表"
        # verbose_name = "用户表"

2.自定义数据表显示选项

class ArticleAdmin(admin.ModelAdmin):

    '''设置列表可显示的字段'''
    list_display = ['title', 'author',  'status', 'mod_date']

    '''设置过滤选项'''
    list_filter = ['status', 'pub_date']

	'''添加搜索框'''
	search_fields = ['author']

    '''每页显示条目数'''
    list_per_page = 5

    '''设置可编辑字段'''
    list_editable = ['status']

    '''按日期月份筛选'''
    # date_hierarchy = 'pub_date'  # 此方法不可用

    '''按发布日期排序'''
    ordering = ['-mod_date']

admin.site.register(Article, ArticleAdmin)

3.显示外键字段

# models.py

class User(models.Model):
    userName = models.CharField('用户昵称',max_length=50)  # 加入'用户昵称'属性,管理端即可将该列名称显示为中文
	grade = models.ForeignKey(to=Grade, on_delete=models.CASCADE,null=True)
    
    class Meta:
        db_table = 'user'  # 表名
        verbose_name_plural = "用户表"
        
    # 在admin中可直接显示外键对象的字段
    def grade_(self):
    	return self.grade.gradename
    grade_.short_description = '班级'

# admin.py
class UserAdmin(admin.ModelAdmin):
	list_display = ['grade_']
	
	'''
	# 方法二:直接在UserAdmin中进行设置,display方式同上不变
	def grade_(self, obj):
		return obj.grade.gradename
	grade_.short_description = '所在班级'
	'''

3+.若未设置外键,可根据查询结果进行显示

#admin.py
class UserAdmin(admin.ModelAdmin):
	list_display = ['grade_']
	def grade_(self,obj):
		return Grade.objects.filter(id=obj.gradeID).first().gradeName
	grade_.short_description='所在班级'

4.根据外键字段进行排序

 

5.根据状态不同,显示不同的状态标签

 
3.3.4逻辑删除 / 修改商品状态 
# admin.py
class GoodsAdmin(admin.ModelAdmin):
	'''添加功能按钮'''
    actions = ['logic_delete']
	
	# 添加逻辑删除功能
    def logic_delete(self,request,queryset):  # 必须加上request字段,接口内部应该需要接收页面请求
        queryset.update(goodsStatus=9)
    logic_delete.short_description = '逻辑删除'
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/823017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号