写Django之做个书签收藏夹

作者:Master易
时间:于 2020年8月13日 21:21 创建, 2020年9月5日 14:56 最后一次的修改
浏览:45

大致目标是,一个网址的收藏夹,有网站名字,

有大概说明是干什么的,然后点一下就会跳转到那个网页


APP本身

首先要创建,到根目录CMD一下,输入

python manage.py startapp 收藏夹

这个时候你的根目录多了一个叫做收藏夹的文件夹

收藏夹

├─migrations
 └─__init__.py
├─__init__.py
├─admin.py
├─apps.py
├─models.py
├─tests.py
├─urls.py这个自己新建下
└─views.py

models.py

from django.db import models

class Urlclass(models.Model):
    title = models.CharField('标题',max_length=100)
    abstract = models.TextField('摘要')
    url = models.URLField('网址')
    class Meta:
        verbose_name = '收藏的网址'
        verbose_name_plural = "收藏的网址"
        #为了在后台显示中文
    def __str__(self):
        return self.title

view.py

from django.views.generic import ListView
from .models import Urlclass

class indexListView(ListView):
    # 上下文的名称
    context_object_name = 'urls'
    # 查询集
    queryset = Urlclass.objects.all()
    # 模板位置
    template_name = '收藏夹/收藏夹列表.html'

urls.py

#引入path
from django.urls import path
# 引入view.py
from . import views

# 正在部署的应用名称
app_name = 'index'

urlpatterns = [
    # path函数将url映射到视图
    path('',views.indexListView.as_view(),name='收藏夹列表'),

]

为了在后台中操作还要写一下admin.py

from django.contrib import admin
from 收藏夹.models import Urlclass

admin.site.site_header = '后台_header'
admin.site.site_title = '后台_title'
admin.site.register(Urlclass)

templates文件夹新建一个收藏夹文件夹,再里面新建收藏夹列表.html

<!-- extends表明此页面继承自 base.html 文件 -->
{% extends "base.html" %}

<!-- 写入 base.html 中定义的 title -->
{% block title %}
收藏夹页
{% endblock title %}

<!-- 写入 base.html 中定义的 content -->
{% block content %}

  <div class="row">
    {% for url in urls %}
    <div class="col-sm-6 mt-4 ">
      <div class="card rounded shadow-lg">
        <a type="button" class="btn btn-secondary" href={{ url.url }} target="view_window">
          <h5 class="text-center text-bottom">{{url.title}}</h5>
        </a>
        <h5 class="text-center">{{url.abstract}}</h5>
      </div>
    </div>
    {% endfor %}
  </div>

APP之外的根目录操作

app写好以后还需要与我们的架子对接一下

基本就是注册app,url对接,迁移数据

在此之前给收藏夹添加一个便于访问的按钮

也就是之前预留在导航条的应用链接

编辑templates/header.html

 <!-- 上面的代码 -->
···

<li class="nav-item">
    <!-- 以后写的每个应用我都放在这里一个链接方便跳转 -->
    <a class="nav-link" href="{% url '收藏夹:收藏夹列表' %}">收藏夹</a>
</li>

···
 <!-- 下面的代码 -->

注册app,编辑我的博客中的settings.py

INSTALLED_APPS = [
    # 其他代码
    ...

    # 新增'收藏夹'代码,激活app
    '收藏夹',
]

编辑我的博客中的urls.py

#其他代码
from django.urls import include

urlpatterns = [
    # 其他代码
    ···

    # 新增代码,配置app的url
    path('收藏夹/', include('收藏夹.urls', namespace='收藏夹')),
]

迁移,在根目录cmd中:

python manage.py makemigrations
python manage.py migrate

数据迁移完成,给自己创建一个管理员便于在后台中添加测试数据,继续CMD

python manage.py createsuperuser
根据提示创建一个管理员账号密码

OK,启动项目

python manage.py runserver

打开浏览器进入后台管理http://127.0.0.1:8000/admin并登陆

添加几条数据之后回到主网址http://127.0.0.1:8000/

可以看到导航栏的收藏夹按钮了,点一下

应该可以看到网址列表了,随便点个网址,么得问题




登录后回复

共有3条评论


jackyfzh

博主,你的代码高亮有点问题,只显示了一半

 

2020-08-18 16:06 回复

Master易 jackyfzh

是的 我不知道怎么解决

2020-08-24 18:58 回复

Jacky Master易

尝试寻找有偿哥cool

2020-09-05 14:57 回复

布丁

易将木剑交给了师父,两人盘腿坐在大树下,师父从怀里摸出一块铁片,在木剑上刻着字。

“无什么……什么什么……易大什么?”易抓着脑袋,念着师父刻的字。

“这些字读,「无极剑派第三百六十九位传人,易大师」。叫你好好读书,连这些字都不认识。”师父敲着易的脑袋说。

“明明是你字太烂……弯弯曲曲的像蚯蚓一样。”易撅着嘴,摸着脑袋,委屈的说。

“是吗,哈哈……”师父摸着脑袋,尴尬的笑着。

“师父,为什么要刻个易大师呢?易就可以了啊。”

“因为带有大师的人,都是很厉害的人。为师希望你以后能将无极剑派的思想发扬光大,所以才刻上大师两个字,这是为师对你的期望。”

“徒儿绝不会辜负师父的期望!”