django框架下的ads管理系统

django-ads的Python项目详细描述


一个django应用程序,可以轻松地将简单(图像)广告添加到项目中。

每个广告都有一个title、一个url要重定向到、一个image要在模板中显示为链接、一个start&end dates和一个weight相对于同一区域中的其他广告。重量越大,广告显示的频率就越高。

每次显示广告时,都会将impression保存到具有会话ID和源IP地址的关于它的数据库中,并且每次单击它时,都会将click保存到具有相同信息的关于它的数据库中。

安装:

使用pip安装软件包:

pipinstalldjango-ads

运行django迁移将表添加到数据库:

pythonmanage.pymigrateads

配置:

'ads'添加到INSTALLED_APPS

确保django.template.context_processors.request包含在context_processors

TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[],'APP_DIRS':True,'OPTIONS':{'context_processors':[...'django.template.context_processors.request',...],},},]

确保django.contrib.sessions.middleware.SessionMiddleware包含在MIDDLEWARE_CLASSES/MIDDLEWARE

在django 1.10之前

MIDDLEWARE_CLASSES=[...'django.contrib.sessions.middleware.SessionMiddleware',...]

Django 1.10(新款)

MIDDLEWARE=[...'django.contrib.sessions.middleware.SessionMiddleware',...]

将以下内容添加到您的设置文件中:

ADS_GOOGLE_ADSENSE_CLIENT=None# 'ca-pub-xxxxxxxxxxxxxxxx'ADS_ZONES={'header':{'name':gettext('Header'),'ad_size':{'xs':'720x150','sm':'800x90','md':'800x90','lg':'800x90','xl':'800x90'},'google_adsense_slot':None,# 'xxxxxxxxx','google_adsense_format':None,# 'auto'},'content':{'name':gettext('Content'),'ad_size':{'xs':'720x150','sm':'800x90','md':'800x90','lg':'800x90','xl':'800x90'},'google_adsense_slot':None,# 'xxxxxxxxx','google_adsense_format':None,# 'auto'},'sidebar':{'name':gettext('Sidebar'),'ad_size':{'xs':'720x150','sm':'800x90','md':'800x90','lg':'800x90','xl':'800x90'}}}ADS_DEFAULT_AD_SIZE='720x150'ADS_DEVICES=(('xs',_('Extra small devices')),('sm',_('Small devices')),('md',_('Medium devices (Tablets)')),('lg',_('Large devices (Desktops)')),('xl',_('Extra large devices (Large Desktops)')),)ADS_VIEWPORTS={'xs':'d-block img-fluid d-sm-none','sm':'d-none img-fluid d-sm-block d-md-none','md':'d-none img-fluid d-md-block d-lg-none','lg':'d-none img-fluid d-lg-block d-xl-none','xl':'d-none img-fluid d-xl-block',}

其中,ADS_ZONES中的每个元素都定义了一个zone,可在模板中用于显示广告。添加广告时,每个区域必须有一个名称用于管理界面,以及用于在模板中显示广告图像的大小。

此应用程序有一个模板:ads/tags/render_ads_zone.html。它做了一些假设:

  1. 您的项目使用bootstrap(使用visible-*img-responsivecss类)。
  2. 如果您使用的是google adsense,则假定您的INSTALLED_APPS中有'sekizai',并且您的基本模板包含{% render_block "js" %}

如果以上任何一个假设都会导致项目出现问题,请随意重写模板。

在URL中创建URL模式。py:

fromdjango.conf.urlsimportinclude,urlurlpatterns=[...url(r'^ads/',include('ads.urls')),...]

用法:

使用django管理界面添加广告商、类别和广告。

在模板中加载ads_tags

{%loadads_tags%}

在希望广告出现的模板中使用render_ads_zone

{%render_ads_zone'zone_name'%}

更改日志:

1.0.0(2019-03-26):

  • 功能上的重大变化(在呈现模板中切换到js方法)。您需要在前端安装jquery才能使用django-ads。
  • 注意:templates/ads/tags/render_ads_zone.html已更改。如果您使用自定义模板,请查看新版本。

0.2.1(2018-07-26):(特别感谢@GabrielDumbrava

  • 获取区域选项现在返回基于键排序的选项
  • 删除用户创建的后,广告、类别和广告商将保留在数据库中。
  • 修正广告模式中的“获取绝对URL”。
  • 添加广告广告区过滤器到印象并单击管理页面。
  • 修正点击和印象管理搜索。

0.2.1(2018-02-05):

  • 向setup.py添加long_说明

0.2.0(2018-02-05):(特别感谢@ataylor32

  • 添加django 2.0支持
  • 添加缺少的依赖项(枕头)
  • 更新自述文件

0.1.8(2017-06-24):

  • 修复GoogleADS脚本标记,以便在同一页中加载多个广告单元

0.1.7(2017-06-24):

  • 请不要使用此版本

0.1.6(2017-06-24):

  • 修复django sekizai依赖项版本

0.1.5(2017-06-24):

  • 添加Google Adsense回退功能

0.1.4(2017-03-01):

  • 如果存在,则从HTTpxxPosiDebug中获取客户端IP地址。

0.1.3(2017-02-08):

  • 消除对简单缩略图的依赖。
  • 添加图像验证以在使用管理界面上载时验证图像大小。

0.1.2(2017-02-08):

  • 添加一个图像模型以允许响应广告。

0.1.1(2016-12-20):

  • 添加缺少的模板目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SSH连接到远程Linux服务器,但不使用第三方库   java使用REST assured的XmlPath查找所有XML节点   java员工入围名单   使用jlinked java launcher启用jlink预览功能   java我的ArrayList对象没有打印出我想要的对象属性   java父标记在FXML文件中没有默认属性警告?   mongodb使用Java复制集合mongodb,而不使用迭代器进行DbAdmin登录   java JDBC DatabaseMetaData为oracle12C中的列大小返回“0”   java在登录后设置会话属性   java中的Html转义?   mysql JAVA面向对象数据库连接   java让socket在安卓中保持活力   java放射组。setOnCheckedListener未按预期工作。(更改单选按钮的颜色)   java LocalContainerEntityManagerFactoryBean实例化未找到persistenceunit   java无法在运行时(运行活动)更改配置(语言环境)