标签分类
技术文章
当前位置:主页 > 计算机编程 > python > 如何优雅地处理Django中的favicon.ico图标详解

处理Django中的favicon.ico图标实例方法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:192

如何优雅地处理Django中的favicon.ico图标详解

这篇文章主要知识点是关于favicon,django,项目加小图标,如何优雅地处理Django中的favicon.ico图标详解,Django添加favicon.ico图标的示例代码 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Django开发宝典
Django开发宝典全书高清版
  • 类型:Django大小:85.5 MB格式:PDF出版:清华大学出版社作者:王友钊、黄静
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

前言

favicon.ico是网站的图标也是网站的头像,简单来说,就是让我们的网站更加好看。

本文主要给大家介绍了关于优雅处理Django中favicon.ico图标的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

起步

默认情况下,浏览器会访问网站 "/favicon.ico" 这个地址获取网站的图标。如果没有配置的话,Django 会返回一个 404 错误。这对于强迫症的人来说,真的很烦。我们有现有的图标,且按开发规范一般存放 static/ 下。

网上的方法

网上找了大概两种处理方式,但都不够优雅。

方法一:使用重定向

在项目的 urls.py 中添加规则:

from django.urls import path
from django.views.generic.base import RedirectView

urlpatterns=[
 ...
 path('favicon.ico', RedirectView.as_view(url='static/img/favicon.ico')),  
]

这种方式我认为是最不好的一种方式,它会让浏览器产生一个新的请求。

方法二:指定图标地址

这种方法就是告诉浏览器,网站图片的正确地址,因此需要在模板中的头部指定:

{% load staticfiles %}
<head lang="zh">
 <meta charset="UTF-8">
 <link rel="shortcut icon" href="{%static " rel="external nofollow" img/favicon.ico" %}" /> <!-- 添加这行 -->
 <title></title>
</head>

这种方法也挺好的。但我还是想从 /favicon.ico 这个地址中解决这个问题。

最优雅的方式

django 有自己的静态文件的处理方法,那就可以设置 url 规则,返回某个静态文件的:

from django.contrib.staticfiles.views import serve

urlpatterns = [
 ...
 path('favicon.ico', serve, {'path': 'img/favicon.ico'}),
]

从根本上解决还不反弹,很棒,很好很强大。

Django添加favicon.ico图标的示例代码

所谓favicon,即Favorites Icon的缩写,让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站。

默认情况下,浏览器访问一个网站的时候,同时还会向服务器请求“/favicon.ico”这个URL,目的是获取网站的图标。

若是没有配置的话,Django就会返回一个404错误,并且浏览器接收到这个404错误后不会显示出来,一般不会被察觉。

但是服务器要是开启日志记录的话,这错误就会一直记录下来,累积一大堆无用的记录。

添加favicon.ico图标的方法有两种

首先先制作一个ico文件,使用PS或者某些在线生成ico的网站即可,我是在下面的网站生成的,当然,你也可以用其他网站!

http://tools.jb51.net/aideddesign/ico_img

下载后将此文件命名为“favicon.ico”后放在static/blog/img/下

方法一、在url.py中添加:

from Django.views.generic.base import RedirectView

urlpatterns=[
  ...
  # favicon.cio
  url(r'^favicon\.ico$', RedirectView.as_view(url=r'static/blog/img/favicon.ico')),   
]

把请求"/favicon.ico",指向static/blog/img/favicon.ico 这个文件,重新部署一下项目就可以看到你想要的效果。

方法二、在页面直接重定向:

<head>
  <meta charset="UTF-8">
  
  {% load staticfiles %}
  
    ...
    <link rel="shortcut icon" href="{%static " rel="external nofollow" blog/img/favicon.ico" %}" />
    ...

</head>

刷新一下,就可以看到效果了哦!!!

记住,一定要把他放在全局head标签里面,这样才会获得应有的效果!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到vue项目中使用md5加密以及、 儿童python编程入门书籍推、 解决axios.interceptors.respon、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:Python中线程的MQ消息队列实现及优缺点详解

下一篇:Python快速查找list中相同部分的实例代码

展开 +

收起 -

学习笔记
网友NO.350900

Django使用redis缓存服务器的实现代码示例

redis相信大家都很熟悉了,和memcached一样是一个高性能的key-value数据库,至于什么是缓存服务器,度娘都有很明白的介绍了,我在这里就不一一介绍了。 那我们一般什么情况下才会使用缓存服务器呢?可不是什么情况都需要的哦,一般来说是在需要频繁对一个字段读取的时候才会需要将这个字段放入到缓存服务器上,而且由于key-value数据库一般只是放很简单的数据,所以在选择保存的对象的时候要注意选择好。 下面我就来介绍如何在Django中配置使用redis数据库,首先是先安装redis了,在Ubuntu中执行下面这句命令: #安装Redis服务器端 sudo apt-get install redis-server 然后为了能在Django中使用redis,还需要安装redis for Django的插件: pip install django-redis 这是一个开源的项目,github地址是https://github.com/niwibe/django-redis,感谢作者。 那么现在就是在Django的settings中配置了。 CACHES = { 'default': { 'BACKEND': 'redis_cache.cache.RedisCache', 'LOCATION': '127.0.0.1:6379', "OPTIONS": { "CLIENT_CLASS": "redis_cache.client.DefaultClient", }, },}REDIS_TIMEOUT=7*24*60*60CUBES_REDIS_TIMEOUT=60*60NEVER_REDIS_TIMEOUT=365*24*60*60 其实只是需要CACHES中的那几条就可以了,后面这三句可以不需要的,只是我后面的例子里需要用到,我就在这里配置了。 好了,现在连接和配置都已经完成了,那么在项目中该如何使用……

网友NO.988519

代码详解django中数据库设置

首先定义数据库的表名和字段 启动mysql数据库 bash mysql.server start 安装pymysql pip install pymysql PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 在_init_.py文件中加入如下代码: import pymysql pymysql.install_as_MySQLdb() 新建数据库 mysql -u root -p 登录root show databases 显示数据库 create database mysite 创建数据库 settings.py配置数据库: 1)django默认使用的是sqlite数据库 2)修改settings.py文件的DATABASES选项进行数据库的配置 3)设置想要使用的数据库。比如mysql DATABASES = {'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mysite', 'USER': 'root', 'PASSWORD': '12345678', 'HOST': 'localhost', 'PORT': '3306',}} 创建app 一个项目中可以创建多个app 使用命令 python manage.py startapp myApp,后生成myApp目录以及相关文件。 admin.py 站点配置 models.py 定义模型 views.py 定义视图 激活app 1)在settings.py文件中将app名称myApp应用加入到INSTALLED_APPS INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myApp', ] 2)定义模型,一个数据库表对应一个模型。 在models.py中加入类似如下: class Grades(models.Model): gname = models.CharField(max_length=20)gdate = models.DateTimeField()ggirlnum = models.IntegerField()gboynum = models.In……

网友NO.136254

Django基础教程总结

对于所有的web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。 一个简单的web程序: #!/usr/bin/env python#coding:utf-8 import socket def handle_request(client): buf = client.recv(1024) client.send(HTTP/1.1 200 OK\r\n\r\n) client.send(Hello, Seven) def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('localhost',8000)) sock.listen(5) while True: connection, address = sock.accept() handle_request(connection) connection.close() if __name__ == '__main__': main() python web程序一般会分为服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了众多的web框架。例如Django,Flask,web.py等。 不同的框架有不同的开发方式,但是无论如何,开发出的应用程序都要和服务器程序配合,再能为用户提供服务。这样,服务器程序就需要为不同的框架提供不同的支持。这样混乱的局面无论对服务器还是框架,都是不好的。对服务器来说,需要支持各种不同框架,对框架来说只有支持它的服务器才能被开发出的应用使用。这个时候,标准化就变的尤为重要。我们可以设立一个标准,只要服务器程序支持这个标准,框架也支持这个标准,那么他们就可以配合使用……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明