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。它做了一些假设:
- 您的项目使用bootstrap(使用visible-*和img-responsivecss类)。
- 如果您使用的是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):
- 添加缺少的模板目录。