django后台循环_「Python学习日记」Django打造属于自己的导航页的过程记录(2)...

「Python学习日记」Django打造属于自己的导航页的过程记录(1)

因为在第一篇里面我们已经做过了简单的分析了,下面就直接进入正题吧。

一、创建项目(pycharm创建的方法之前已经详细说过了)

创建名为Navigation的项目,创建完毕后再在项目根目录下创建一个名为:static的文件夹(用于存放JS和CSS),把搜索到的导航的index复制到templates文件夹,js和css以及图片放到static文件夹中,如图:

7ff9d3d56823f24db093014531dd129e.png

二、修改配置文件(NavigationNavigationsettings.py)

由于是pycharm创建的,项目也不大,就现在自带的sqlite3就行。

所以就修改如下代码:

# 设置语言和时区LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'STATIC_URL = '/static/'# 这句没有,要自己加上,STATICFILES_DIRS就是静态文件的路径STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)

三、models:(Navigationagamodels.py)

由于上篇已经做了分析,我们就直接开始定义了,代码如下:

from django.db import models# Create your models here.# Classif和Category共用的字段类class Share(models.Model):    isshow = models.BooleanField(verbose_name="是否显示", default=True)    sort = models.IntegerField(verbose_name="排序", default=0)    updata_time = models.DateTimeField(verbose_name="更新时间", auto_now = True)    add_time = models.DateTimeField(verbose_name="添加时间", auto_now_add = True)    class Meta:        # 表示为抽象类,不生成代码,这里只做继承用        abstract = True# 继承自Share,由于Share继承自models.Model,所以这里就不用再继承了class Classif(Share):    name = models.CharField(verbose_name="分类", max_length=10, null=False, unique=True)    # Meta和__str__之前都有说过,这里就不重复了    class Meta:        verbose_name = "导航分类"        verbose_name_plural = verbose_name    def __str__(self):        return self.nameclass Category(Share):    name = models.CharField(verbose_name="名称", max_length=255, null=False)    address = models.CharField(verbose_name="地址", max_length=255, null=False)    # 设置外键,与Classif关联节气    fork = models.ForeignKey(to=Classif, on_delete=models.CASCADE)    class Meta:        verbose_name = "导航地址"        verbose_name_plural = verbose_name    def __str__(self):        return self.name

四、生成迁移代码和迁移数据

# 生成迁移代码python manage.py makemigrations# 迁移数据python manage.py migrate
5f69b6854cc8dd5c72c0eb2886041d71.png

迁移数据成功

五、做导航的首页:(Navigationemplatesindex.html)

把没用的给删掉(想要源码的可以私信我,太长了,就不贴出来了),修改一下

主要修改的是:

# 这两行配置JS和CSS的路径#  图片的路径    # 把多余的div删掉,我们用for循环# 注意不要删多了哦              
{% for classif in classifs %}
{{ classif.name }}
# 一查多的方法,classif.category_set.all # classif 是分类 # category_set获取属于上面分类的导航地址 # category是models定义的Category类第一个字母小写,加上_set {% for cat in classif.category_set.all %}
{{ cat.name }}
{% endfor %}
{% endfor %}
# 还有一点不一样,就是js中图片的路径,我折腾了老半天才发现: var search = { data: [{ name: '百度', # 5个搜索引擎的图标 img: '/static/images/logo.jpg', ...........

六、配置urls(NavigationNavigationurls.py)

from django.contrib import adminfrom django.urls import pathfrom naga import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('', views.index),]

七、配置views(Navigationagaviews.py)

from django.shortcuts import renderfrom .models import *def index(request):    classifs = Classif.objects.filter(isshow=True).all()    return render(request, "index.html", locals())

到此代码就全部敲完了,下面添加点数据

八、添加管理面账户

之前有说,这里就不再重复了:如图

ce24e8b8dbfd05bee1d6ed406b4db661.png

九、启动服务器

python manage.py runserver

十、在管理员后台添加一些数据

这个具体就不演示了。非常简单

十一、网站建成

看看长什么样子:

db381bd557f3a816e46f04440022c48f.png

最终成品

我添加的分类就一个,地址两个,看着太少了,大家可以把常用的都加进去。

到此项目完成,大家可以也照着做一遍,虽说简单,起码也是一个提升。

有问题和建议可以告诉我,我们大家一起交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值