创建可以链接到wagtail页面的QR码
项目描述
Wagtail QR码
此软件包可用于在Wagtail CMS中创建具有相应QR码的页面。
功能
- 生成的QR码以EPS文档的形式保存,可以打印。扫描后,将通过页面ID重定向链接到页面。
- 您可以下载生成的QR码,并在海报、明信片、横幅、啤酒垫等印刷广告中使用它。
- 在保存草稿或发布页面时,您可以将一次性电子邮件地址添加到附件中,将qr-code发送出去。
安装
要将软件包添加到自己的Wagtail CMS中
在环境中安装软件包。
pip install wagtail-qrcode
将软件包添加到网站设置中。
INSTALLED_APPS = [
# ...
"wagtail_qrcode",
# ...
]
将此设置添加到Wagtail设置中。
它用于生成QR码的基础URL
WAGTAIL_QR_CODE_BASE_URL = "your-site-url"
您可能需要使用另一台设备测试QR码。您的设备需要能够解析测试域名,本地主机可能无法工作。
尝试使用ngrok等服务来设置指向本地主机的URL,并将该域名用作WAGTAIL_QR_CODE_BASE_URL
设置。
这是启动ngrok的命令。
./ngrok http 8000 --scheme=http
使用QRCode页面模型混入
在新的或现有的页面模型中使用模型混入。
# models.py
from wagtail.admin.panels import (
FieldPanel,
MultiFieldPanel,
ObjectList,
TabbedInterface,
)
from wagtail.models import Page
from wagtail_qrcode.admin_forms import QrCodeEmailForm
from wagtail_qrcode.models import QRCodeMixin
class QRCodePage(QRCodeMixin, Page):
qrcode_panels = QRCodeMixin.panels + [
MultiFieldPanel(
[
FieldPanel("email_address"),
FieldPanel("email_subject"),
FieldPanel("email_body"),
],
heading="Send QR code via email",
)
]
edit_handler = TabbedInterface(
[
ObjectList(Page.content_panels, heading="Content"),
ObjectList(Page.promote_panels, heading="Promote"),
ObjectList(Page.settings_panels, heading="Settings", classname="settings"),
ObjectList(qrcode_panels, heading="QR Code", classname="qr-code"),
]
)
base_form_class = QrCodeEmailForm
这将在页面编辑器中添加一个新标签页QR码
,您可以在此处预览生成的QR码并访问可下载的打印就绪EPS文件。(文件也可以在文档应用中找到)
如果您不需要能够通过电子邮件发送QR码,则您的页面模型可以是
# models.py
from wagtail.admin.panels import (
FieldPanel,
MultiFieldPanel,
ObjectList,
TabbedInterface,
)
from wagtail.models import Page
from wagtail_qrcode.models import QRCodeMixin
class QRCodePage(QRCodeMixin, Page):
qrcode_panels = QRCodeMixin.panels
edit_handler = TabbedInterface(
[
ObjectList(Page.content_panels, heading="Content"),
ObjectList(Page.promote_panels, heading="Promote"),
ObjectList(Page.settings_panels, heading="Settings", classname="settings"),
ObjectList(qrcode_panels, heading="QR Code", classname="qr-code"),
]
)
URLS
在wagtail_urls
之前将wagtail-qrcode URLs包含到您的网站URL中。
该URL在扫描和浏览器的QR码时提供重定向端点。
urlpatterns = [
# ...
path("qr-code/", include("wagtail_qrcode.urls")),
# ...
]
或导入视图并将视图传递给路径函数
from wagtail_qrcode.views import qr_code_page_view
urlpatterns = [
# ...
path("qr-code/", qr_code_page_view, name="qr-code-view"),
# ...
]
配置
设置配置(可选,这些是默认值)
WAGTAIL_QR_CODE = {
"collection_name": "QR Codes",
"scale": 3,
"quiet_zone": 6,
"svg_has_xml_declaration": False,
"svg_has_doc_type_declaration": False,
}
- collection_name:自动创建并用作所有生成QR码的集合
- scale:QR码中点的尺寸
- quiet_zone:QR码周围的空白边框
- svg_has_xml_declaration:QR码SVG是否有XML声明
- svg_has_doc_type_declaration:QR码SVG是否有HTML文档类型声明
贡献
如果您想对该软件包提出改进建议,欢迎贡献。
问题
如果您发现一个问题,请考虑提出问题。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
wagtail_qrcode-2.1.0.tar.gz (15.8 kB 查看散列)
构建分布
wagtail_qrcode-2.1.0-py3-none-any.whl (17.0 kB 查看散列)