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

吉林网站制作选择乐云seo关键词搜索排名推广

吉林网站制作选择乐云seo,关键词搜索排名推广,怎么修改公司网站内容,网络营销策划实务Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能#xff0c;可以让你快速创建一个管理界面#xff0c;用于管理你的应用程序的数据模型。 使用Django后台管理系统#xff0c;你可以轻松地进行以下操作#xff1a; 数据库管理…Django自带的后台管理系统主要用来对数据库进行操作和管理。它是Django框架的一个强大功能可以让你快速创建一个管理界面用于管理你的应用程序的数据模型。 使用Django后台管理系统你可以轻松地进行以下操作 数据库管理你可以查看、添加、编辑和删除数据库中的记录而无需编写自定义的管理界面或数据库查询语句。 模型管理Django后台管理系统会自动检测你在应用程序中定义的模型并为每个模型创建相应的管理界面。这样你就可以直接在后台管理界面对模型进行操作。 用户权限管理Django后台管理系统支持用户认证和权限控制你可以通过定义用户组和权限限制特定用户对数据的访问和操作。 自定义管理页面尽管Django后台管理系统提供了很多默认功能但你也可以根据需要自定义管理页面添加自定义的功能和视图。 总体而言Django后台管理系统是一个强大的工具使得对数据库进行操作和管理变得简单而高效这使得开发者可以更专注于业务逻辑和功能开发而无需为了管理界面而花费大量时间和精力。 在本文中我们在Django中创建与商品分类、商品信息有关的数据表模型并利用Django自带的后台管理系统对商品分类、商品信息的数据表进行管理。 01-新建一个名为“good_info”的Project 命令如下 CD E:\Python_project\P_001\myshop-test E: django-admin startproject good_info02-新建两个应用 执行下面条命令依次创建两个应用 CD E:\Python_project\P_001\myshop-test\good_info\ E: python manage.py startapp goods python manage.py startapp users上面的两个应用主要的就是goods我们会在goods的models.py中写入商品分类和商品信息的数据库类模型。 但由于商品信息中有用户的信息所以还需要有users模型。 03-在settings.py中对两个应用进行注册 在settings.py中进行注册的代码如下 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,users,goods, ]04-编写两个应用的数据库模型类 04-01-users的模型创建及代码详解 打开文件E:\Python_project\P_001\myshop-test\myshop_background\apps\users\apps.py 写入以下代码 from datetime import datetime from django.db import models from django.contrib.auth.models import AbstractUser, Group, Permissionclass MyUser(AbstractUser):SEX ((0, 男),(1, 女),)LEVEL ((1, 寂寞卡会员),(2, 钻石卡会员),(3, 金卡会员),(4, 银卡会员),)STATUS ((0, 正常),(1, 异常),)groups models.ManyToManyField(Group,verbose_namegroups,blankTrue,help_textThe groups this user belongs to.,related_nameuser_groups # 设置不同的 related_name)user_permissions models.ManyToManyField(Permission,verbose_nameuser permissions,blankTrue,help_textSpecific permissions for this user.,related_nameuser_permissions # 设置不同的 related_name)truename models.CharField(真实姓名, blankTrue, max_length50)mobile models.CharField(手机号码, max_length11, default)sex models.IntegerField(default0, choicesSEX)birthday models.DateField(blankTrue, nullTrue)user_img models.ImageField(头像, upload_touser_img, default)level models.IntegerField(default4, choicesLEVEL)status models.IntegerField(default0, choicesSTATUS)create_time models.DateTimeField(defaultdatetime.now, verbose_name创建时间)update_time models.DateTimeField(defaultdatetime.now, verbose_name更新时间)def __str__(self):return self.usernameclass Meta(AbstractUser.Meta):permissions ([check_myuser, 审核用户信息],)①关于字段groups和字段user_permissions的说明。 字段groups和字段user_permissions实际上是没有作用的那为什么要定义呢原因请见博文https://blog.csdn.net/wenhao_ir/article/details/131773627 ②问能不能介绍下代码from django.contrib.auth.models import AbstractUser中涉及到的类AbstractUser 答在Django框架中django.contrib.auth.models模块提供了用于身份验证和授权的相关功能。其中AbstractUser类是Django默认的用户模型user model的抽象基类。详情请参见链接https://blog.csdn.net/wenhao_ir/article/details/131594115 ③代码 truenamemodels.CharField(‘真实姓名’,blankTrue,max_length50) 的blankTrue,是什么意思 在Django模型中blankTrue是一个参数用于指示模型字段是否可以为空。当blankTrue时该字段在表单验证过程中可以为空不会引发验证错误。如果blankFalse则该字段在表单验证过程中是必需的不能为空。 在代码中truename是一个CharField它表示一个字符型字段用于存储真实姓名。由于指定了blankTrue这意味着在创建或更新该模型实例时可以将truename字段留空。这对于某些情况下真实姓名是可选的场景很有用。但需要注意的是即使blankTrue数据库中存储的字段值仍然可以是空字符串而不是NULL值。 ④代码 mobilemodels.CharField(‘手机号码’,max_length11,default“”)中的 default“” 是什么意思 答default是models.CharField的一个参数用于指定字段的默认值。 default表示当创建新的模型实例时如果没有为mobile字段提供具体的值那么该字段将默认为空字符串。 在数据库中如果没有为该字段提供值它将被存储为空字符串而不是NULL值。这意味着在查询和检索数据时如果mobile字段没有被显式地赋值它将返回空字符串作为默认值。 通过设置默认值可以确保即使没有为该字段提供值模型实例的mobile字段始终有一个默认的空字符串值。这在某些情况下可能是有用的例如当手机号码是可选的字段时可以将其默认为空字符串。 注意如果在代码mobilemodels.CharField(手机号码,max_length11)中不指定default参数或将其设置为defaultNone则在创建新的模型实例时如果没有为mobile字段提供具体的值该字段将默认为NULL值。 ⑤语句 sex models.IntegerField(default0,choicesSEX) 的理解 这个代码中的choicesSEX定义了一个选项列表其中每个选项都由一个值和对应的显示标签组成。在这个例子中SEX是一个包含元组的元组每个元组有两个元素第一个是存储的值第二个是显示的标签。 在数据库中sex字段将使用整数存储而不是字符串。当你在创建或更新对象时可以使用这些选项中的任何一个值来表示性别。数据库中存储的是相应的整数值0代表男1代表女但是在界面上或其他需要显示的地方你可以使用元组中的显示标签‘男’和’女’来表示。 也就是说如果我写入一个值这个值是字符串’男’那么写入数据库的是整数0哈。 ⑥语句 user_imgmodels.ImageField(“头像”,upload_to“user_img”,default“”) 的 upload_to“user_img” 是什么意思 答在Django中上传路径可以在模型字段的定义中通过upload_to参数设置也可以通过Django的配置文件进行全局设置。 模型字段中的设置 在定义模型字段时可以使用upload_to参数来指定上传路径。例如 from django.db import modelsclass MyModel(models.Model):image models.ImageField(upload_tomy_upload_path/)上述代码中upload_to参数设置为my_upload_path/表示上传的文件将保存在MEDIA_ROOT/my_upload_path/路径下其中MEDIA_ROOT是在Django的配置文件中设置的媒体文件根路径。 全局配置文件中的设置 Django还提供了一个全局配置文件settings.py可以在其中设置默认的上传路径。在配置文件中可以使用MEDIA_ROOT和MEDIA_URL两个设置来定义上传文件的根路径和对应的URL。例如 # settings.pyMEDIA_ROOT os.path.join(BASE_DIR, media) MEDIA_URL /media/上述配置中MEDIA_ROOT指定了媒体文件的根路径为BASE_DIR/mediaMEDIA_URL指定了该路径对应的URL为/media/。在模型字段中不指定upload_to参数时文件将被保存在MEDIA_ROOT设置的路径下。关于BASE_DIR的详细介绍请参考我的另一篇博文https://blog.csdn.net/wenhao_ir/article/details/131598936 需要注意的是在使用MEDIA_ROOT和MEDIA_URL进行设置时确保在Django的URL配置中包含了相应的URL映射以便可以正确地访问上传的文件。 ⑦内部类Meta是什么东西 关于这个问题的答案请参见我的另一篇博文 https://blog.csdn.net/wenhao_ir/article/details/131600645 04-02-goods的模型创建及代码详解 04-02-1-拷贝common文件夹 把下面的common文件夹拷贝到根目录 E:\Python_project\P_001\myshop-test\good_info 中。 https://pan.baidu.com/s/115vpHu68sR3vDJqvBHuFUg?pwdg9ow 在 common 目录下有文件base_model.py 文件base_model.py的内容如下 from django.db import modelsclass BaseModel(models.Model):抽象基类create_time models.DateTimeField(auto_now_addTrue, verbose_name创建时间)update_time models.DateTimeField(auto_nowTrue, verbose_name更新时间)class Meta:# 指定抽象基类abstract True 注意在这个抽象基类中定义了字段“create_time”和“update_time ”。 04-02-2-代码写入模型文件 goods\models.py 打开文件E:\Python_project\P_001\myshop-test\good_info\goods\models.py 定入下面的代码 from django.db import models from datetime import datetimefrom users.models import MyUser from common.base_model import BaseModelclass GoodsCategory(BaseModel):id models.AutoField(primary_keyTrue)name models.CharField(max_length50, verbose_name分类名称, default)parent models.ForeignKey(self, nullTrue, blankTrue, verbose_name父类, on_deletemodels.DO_NOTHING, related_namesub_cat)is_nav models.BooleanField(defaultFalse, verbose_name是否显示在导航栏)sort models.IntegerField(verbose_name排序)def __str__(self):return self.nameclass Meta:verbose_name 商品分类verbose_name_plural 商品分类db_table d_goods_category # 在数据库中的表名class Goods(models.Model):STATUS ((0, 正常),(1, 下架),)name models.CharField(max_length50, verbose_name商品名称, default)category models.ForeignKey(GoodsCategory, blankTrue, nullTrue, verbose_name商品分类, on_deletemodels.DO_NOTHING)market_price models.DecimalField(max_digits8, default0, decimal_places2, verbose_name市场价格)price models.DecimalField(max_digits8, decimal_places2, default0, verbose_name实际价格)unit models.CharField(max_length10, verbose_name计量单位, blankTrue, nullTrue)click_num models.IntegerField(default0, verbose_name点击数)amount models.IntegerField(default0, verbose_name销售量)stock_num models.IntegerField(default0, verbose_name库存数)fav_num models.IntegerField(default0, verbose_name收藏数)goods_desc models.CharField(max_length200, verbose_name商品详情, default,)status models.IntegerField(default0, choicesSTATUS)is_recommend models.BooleanField(defaultFalse, verbose_name是否推荐)user models.ForeignKey(MyUser, blankTrue, nullTrue, verbose_name用户, on_deletemodels.DO_NOTHING)createDate models.DateTimeField(defaultdatetime.now, verbose_name创建时间)def __str__(self):return self.nameclass Meta:verbose_name 商品信息verbose_name_plural 商品信息db_table d_goods # 在数据库中的表名 下面这句代码的理解请参考博文 https://blog.csdn.net/wenhao_ir/article/details/131708665 parent models.ForeignKey(self, nullTrue, blankTrue, verbose_name父类, on_deletemodels.DO_NOTHING, related_namesub_cat)05-创建数据库 数据库名goodtest01 数据库用户名goodtest01 数据库密码aa123456 06-配置setting.py文件中的数据库信息 打开文件E:\Python_project\P_001\myshop-test\good_info\good_info\settings.py 写入下面的数据库配置信息 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: goodtest01,USER: goodtest01,PASSWORD: aa123456,HOST: localhost,PORT: 3306,# 取消外键约束否则多对多模型迁移报django.db.utils.IntegrityError: (1215, Cannot add foreign key constraint)OPTIONS: {init_command: SET foreign_key_checks 0;,charset: utf8},} }07-创建模型迁移和执行模型迁移命令 首先请把数据库打开。 首先请把数据库打开。 首先请把数据库打开。 然后执行下面的命令。 CD E:\Python_project\P_001\myshop-test\good_info\ E: manage.py makemigrations manage.py migrateE:\Python_project\P_001\myshop-test\good_infomanage.py makemigrations Migrations for goods:goods\migrations\0001_initial.py- Create model GoodsCategory- Create model Goodsgoods\migrations\0002_goods_user.py- Add field user to goods Migrations for users:users\migrations\0001_initial.py- Create model MyUser08-创建后台管理员用户 运行下面的命令 CD E:\Python_project\P_001\myshop-test\good_info\ E: manage.py createsuperuser从上面的过程来看如果不指定管理员的用户名则默认为administrator同时还可以输入管理员的邮箱。 我在上面设的密码为bb123456 09-启动后台web服务并测试是否能登陆管理员帐户 运行下面这三条命令启动 CD E:\Python_project\P_001\myshop-test\good_info\ E: python manage.py runserver访问下面这个URL进入Django自带的后台登陆页面 http://127.0.0.1:8000/admin/ 输入用户名administrator和密码bb123456登陆 10-配置Admin后台管理系统 10-1-配置 goods/app.py 文件 把 goods/app.py 文件原来的代码 from django.apps import AppConfigclass GoodsConfig(AppConfig):default_auto_field django.db.models.BigAutoFieldname goods 改成下面这样 from django.apps import AppConfigclass GoodsConfig(AppConfig):default_auto_field django.db.models.BigAutoFieldname goodsverbose_name 商品管理 即加上代码verbose_name 商品管理,这样“商品管理”会显示在Admin后台管理系统中的左侧菜单导航中。 10-2-设置 goods/__init__.py 文件 在goods/__init__.py 文件中写入下面的代码 from .apps import GoodsConfig default_app_config goods.GoodsConfig关于语句from .apps import GoodsConfig的解释如下 在Django中.apps是指从当前包package【也可以理解为当前目录】中导入一个名为apps的模块module或子包sub-package。在上面的代码中from .apps import GoodsConfig的作用是从当前目录的apps模块中导入类 GoodsConfig 。 .apps用于从当前包中导入GoodsConfig。 具体来说Django的应用app通常是一个包含apps.py文件的Python包。apps.py文件用于定义Django应用的配置类其中包含应用的元数据信息例如应用名称、显示名称等。通常情况下Django会自动生成apps模块你可以通过导入它来访问应用的配置类。 假设你的项目结构如下 my_project/my_app/__init__.pyapps.pymodels.pyviews.py在apps.py中可能会定义类似如下的应用配置类 # my_project/my_app/apps.pyfrom django.apps import AppConfigclass GoodsConfig(AppConfig):name my_appverbose_name My Goods Application现在如果你想在其他文件中引用GoodsConfig这个配置类可以使用相对导入的方式如下所示 # 任何其他.py文件from .apps import GoodsConfig# 使用GoodsConfig进行配置或其它操作在这里.apps表示当前包my_app中的apps模块然后从中导入了GoodsConfig类。注意apps这个名称是由Django约定的用于表示应用的配置模块。 总之.apps在这里是一个相对导入的语法用于引用当前包中的apps模块并从中导入GoodsConfig类。 关于语句default_app_config goods.GoodsConfig的解释如下 在Django中default_app_config变量用于指定一个应用的默认配置类。当一个Django应用被加载时它将查找该应用的apps.py文件并在其中寻找继承自AppConfig的配置类如果存在的话。然后Django将使用该配置类来配置应用的行为和元数据。 然而有时候你可能希望在应用的apps.py文件中定义配置类但不希望Django自动使用它作为默认的应用配置。这种情况下你可以手动指定默认的配置类而不是让Django自动识别。 在你提供的代码中default_app_config goods.GoodsConfig的作用是明确指定应用goods使用GoodsConfig作为其默认配置类。这样做的好处是即使Django自动检测到其他配置类它也会优先选择使用GoodsConfig作为该应用的配置类。 举例来说假设你的应用goods有如下结构 goods/__init__.pyapps.pymodels.py...在apps.py中定义了GoodsConfig配置类 # goods/apps.pyfrom django.apps import AppConfigclass GoodsConfig(AppConfig):name goodsverbose_name Goods Application然后在goods/__init__.py中添加了default_app_config变量 # goods/__init__.pyfrom .apps import GoodsConfig default_app_config goods.GoodsConfig通过这样的设置你可以确保GoodsConfig会被作为goods应用的默认配置类。即使Django自动发现了其他配置类也会忽略它们并使用GoodsConfig。 需要注意的是default_app_config变量只有在应用被加载之前设置才有效。在Django启动时它会读取应用的__init__.py文件找到default_app_config变量并应用它指定的配置类。因此如果你在运行Django之前修改了该文件确保default_app_config的设置在Django加载应用之前生效。 10-3-配置admin.py文件 在文件E:\Python_project\P_001\myshop-test\good_info\goods\admin.py 中写入下面的代码 from django.contrib import admin from goods.models import *admin.register(GoodsCategory) class GoodsCategoryAdmin(admin.ModelAdmin):admin.site.site_title 我的商城-标签页标题admin.site.site_header 我的商城-页面标题admin.site.index_title 商城平台管理-后台管理主页标题# 设置列表中显示的字段list_display [name, sort, create_time] # 字段create_time定义在 from common.base_model import BaseModel 中# 搜索search_fields [name, parent_id]# 过滤list_filter [name, parent_id]# 设置每页现实的数据量list_per_page 10# 设置排序ordering [sort]admin.register(Goods) class GoodsAdmin(admin.ModelAdmin):# 设置列表中显示的字段list_display [name, market_price, price] 代码admin.register(GoodsCategory)是什么意思 答有两个作用。 ①在Django中admin.register() 是一个装饰器decorator用于注册数据库模型类Model到后台管理界面。具体来说admin.register(GoodsCategory) 这行代码的作用是将 GoodsCategory 数据库模型类注册到Django后台管理界面从而允许您在后台对该模型进行管理和操作。 一旦通过 admin.register() 注册了一个数据库模型类Django会自动创建一个对应的管理页面该页面允许您查看、添加、修改和删除模型的实例。这样您就可以在后台管理界面轻松地管理您的数据库中的 GoodsCategory 数据。 ②在上面的代码中GoodsCategoryAdmin 类被用作 GoodsCategory 模型的管理类它继承自 admin.ModelAdmin。通过在该类中定义不同的属性和方法您可以自定义后台管理界面的外观和行为例如定义要显示的字段、搜索和过滤选项、排序规则等等。 11-重新启动 Web服务及效果展示 CTRLC结束掉之前启动的Web服务然后重新启动 CD E:\Python_project\P_001\myshop-test\good_info\ E: python manage.py runserver访问后台管理 http://127.0.0.1:8000/admin/ 用户名administrator和密码bb123456 把上面的这幅截图记为“Home图” 点击“Home图”中的“商品信息”界面如下 点击“Home图”中的“商品分类”界面如下 点击“Home图”中的“商品信息”右边的“ Add”,界面如下 点击“Home图”中的“商品分类”右边的“ Add”,界面如下 12-写入数据测试 12-1-创建一条“商品分类”数据 12-2-创建一条“商品信息”数据 13-整个Project的压缩包下载链接 整个Project的压缩包下载链接 https://pan.baidu.com/s/1DwfwH79cE6SB67hZqa-Q3w?pwdhyrd
http://www.yutouwan.com/news/159349/

相关文章:

  • 建立企业网站要多少钱做个企业网站的公司
  • 旅游网站功能模块建一个淘宝客网站要多少钱
  • 广州黄埔做网站公司哪家好站长统计官网
  • 东莞微联建站带分页的wordpress模板
  • 临汾网站开发驻马店app和网站开发公司
  • 中国建设银行网上银行网站特点有哪些网站设计比较好的公司
  • 南昌营销网站公司哪家好做像58同城样的网站
  • 淘宝请人做网站被骗wordpress添加简码
  • 单位网站的作用南京环力建设有限公司网站
  • 杭州营销网站制作有哪些网站下载ppt是免费的
  • 长春网站开发公司哪家好中国建设银行积分网站
  • 五百亿网站搬家公司阿里云备案 网站备案域名
  • 网站网站建设网页设计大埔建设工程交易中心网站
  • 网站开发需要自己写代码吗网站空间 按流量计费
  • 深圳聘请做网站人员app移动应用软件开发
  • 青海建设厅网站首页wordpress上传视频人50
  • 旅游网站项目评估个人网页框架模板
  • 网站收录量潍坊网络营销外包
  • 晋州专业网站建设山西疾控最新通告今天
  • 中国建设银行积分网站可以搜索任何网站的浏览器
  • 关于解决网站 建设经费的请示什么直播可以做游戏视频网站吗
  • 龙岗网站建设培训乐清新闻
  • 搜索网站排行榜一般大概需要多少钱
  • 网站底部悬浮广告代码南昌网站建设和推广
  • 专门做产品排名的网站wordpress门户主题
  • 国外网站搜索引擎优化方案灰色网站网站
  • 做设计 素材网站有哪网站建设致谢
  • 百度网盘网站开发文档模板网站如何做查询表单
  • 顺德网站建设收费标准wordpress无限登录密码
  • 企业网站建设 知乎品牌设计公司招聘