Django:之ORM、CMS和二维码生成

Django ORM

Django 的数据库接口非常好用,我们甚至不需要知道SQL语句如何书写,就可以轻松地查询,创建一些内容,所以有时候想,在其它的地方使用Django的 ORM呢?它有这么丰富的 QuerySet API.

settings.py

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
SECRET_KEY = ‘at8j8i9%[email protected]#64^0&qlr6m5yc(_&me%[email protected]+‘

INSTALLED_APPS = (
    ‘test‘,
)
# Database
DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
        ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
    }
}

在这个文件中写上 SQLite, MySQL或PostgreSQL的信息,这样就可以运用这个数据库了。

新建确保每个app下有一个 models.py 和 __init__.py 文件,就可以享受 Django 的 ORM 带来的便利!

可以用 Django QuerySet API 来创建,查询,删除,修改,不用写SQL语句。

更详细的请查看本文提供的源代码。

Django CMS

CMS 的意思是 Content Management System 内容管理系统,一般拿就可以使用,不会编程也能做出网站来,还可以在原来的基础上再次开发,减少工作量,这里列举了一些出名的 CMS:

  • Opps - A content management platform built for large portals.
  • django-cms - The easy-to-use and developer-friendly CMS.

    这个不是为初学者开发的,想在基础上开发需要对Django比较了解才行,是一个基本的框架。

  • mezzanine - A content management platform built using the Django framework.

    简单易用,自带Blog和用户注册系统,拿来就可以用

  • wagtail - A new Django content management system.
  • django-fiber - Django Fiber, a simple, user-friendly CMS for all your Django projects

Python/Django 生成二维码

一、包的安装和简单使用

1.1 用Python来生成二维码很简单,可以看 qrcode 这个包:

pip install qrcode

qrcode 依赖 Image 这个包:

pip install Image

如果这个包安装有困难,可选纯Python的包来实现此功能,见下文。

1.2 安装后就可以使用了,这个程序带了一个 qr 命令:

qr ‘http://www.wulaoer.com‘ > test.png

1.3 下面我们看一下如何在 代码 中使用

import qrcode

img = qrcode.make(‘http://www.wulaoer.com‘)
# img <qrcode.image.pil.PilImage object at 0x1044ed9d0>

with open(‘test.png‘, ‘wb‘) as f:
    img.save(f)

这样就可以生成一个带有网址的二维码,但是这样得把文件保存到硬盘中。

【备注】:纯Python的包的使用:

安装:

pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png

使用方法大致相同,命令行上:

qr --factory=pymaging "Some text" > test.png

Python中调用:

import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make(‘Some data here‘, image_factory=PymagingImage)

二,Django 中使用

我们可以用 Django 直接把生成的内容返回到网页,以下是操作过程:

2.1 新建一个 zqxtqrcode 项目,tools 应用:

django-admin.py startproject zqxtqrcode
python manage.py startapp tools

2.2 将 tools 应用 添加到 项目 settings.py 中

INSTALLED_APPS = (

    ...

    ‘tools‘,
)

2.3 我们修改 tools/views.py

from django.http import HttpResponse
import qrcode
from cStringIO import StringIO

def generate_qrcode(request, data):
    img = qrcode.make(data)

    buf = StringIO()
    img.save(buf)
    image_stream = buf.getvalue()

    response = HttpResponse(image_stream, content_type="image/png")
    response[‘Last-Modified‘] = ‘Mon, 27 Apr 2015 02:05:03 GMT‘
    response[‘Cache-Control‘] = ‘max-age=31536000‘
    return response

上面对返回结果进行了处理,浏览器会缓存图片,提高再次加载的速度。Cache-Control 和 Last-Modified 不懂的可以看一下 HTTP协议 相关知识。

2.4 添加视图函数到 zqxtqrcode/urls.py

url(r‘^qrcode/(.+)$‘, ‘tools.views.generate_qrcode‘, name=‘qrcode‘),

2.5 同步数据库,打开开发服务器:

python manage.py syncdb
python manage.py runserver

打开:http://127.0.0.1:8000/qrcode/http://www.wulaoer.com 就可以看到如下效果:

这样生成 二维码的接口就写好了 ^_^,实例采用的是返回图片流的方式,这样不用写文件到硬盘,接口调用更方便,如果要加速,可以用Django缓存来实现。

源代码下载:

基于 Django 1.8,tools app 可以在 Django 1.4-Django1.8之间使用,更低版本的自测,应该也没什么问题,建议按教程步骤来一遍,这样学的更好

时间: 2024-10-05 20:35:30

Django:之ORM、CMS和二维码生成的相关文章

超实用python小项目--基于python的手机通讯录二维码生成网站--1、项目介绍和开发环境

这个项目是我做完整的第一个python web项目,对于新手来说,这个项目绝对是一个特别好的练手项目. 起名还是困难,但是自己确实比较烦输入这么长的名字(手机通讯录二维码生成网站)去定义这个网站,所以还是给这个项目起个名字吧,叫什么呢?就叫 "鹅日通讯录"吧(Earth address list). --------------------------------------------------------------------------------------------我是

java二维码生成

二维码,是一种采用黑白相间的平面几何图形经过相应的编码算法来记载文字.图画.网址等信息的条码图画.如下图 二维码的特色: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比一般条码信息容量约高几十倍. 2.  编码规模广 该条码能够把图画.声响.文字.签字.指纹等能够数字化的信息进行编码,用条码表明出来:能够表明多种语言文字:可表明图画数据. 3.  容错能力强,具有纠错功用 这使得二维条码因穿孔.污损等导致部分损坏时,照样能够正确

.NET 二维码生成(ThoughtWorks.QRCode)

引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; qrCodeEncoder.QRCodeScale = 4

Chrome浏览器二维码生成插件

  猛击就可以使用啦->>>猛击使用   源码如下: 源码打包   源码: jquery-2.1.3.min.js jquery.qrcode.min.js https://github.com/jeromeetienne/jquery-qrcode spectrum.css spectrum.js https://github.com/bgrins/spectrum manifest.json { "manifest_version": 2, "name&

【转】Android 二维码 生成和识别(附Demo源码)--不错

原文网址:http://www.cnblogs.com/mythou/p/3280023.html 今天讲一下目前移动领域很常用的技术——二维码.现在大街小巷.各大网站都有二维码的踪迹,不管是IOS.Android.WP都有相关支持的软件.之前我就想了解二维码是如何工作,最近因为工作需要使用相关技术,所以做了初步了解.今天主要是讲解如何使用ZXing库,生成和识别二维码.这篇文章实用性为主,理论性不会讲解太多,有兴趣可以自己查看源码. 1.ZXing库介绍 这里简单介绍一下ZXing库.ZXin

二维码生成delphi版

二维码生成delphi版 生成二维码的软件,代码从C语言转换过来(源地址:http://fukuchi.org/works/qrencode/),断断续续的差不多花了一周时间来转换和调试.在转换过程中学到了不少东西,特别是对于delphi和C语言中一些概念比较模糊的地方,有了更清楚地认识. 支持中英文文字生成二维码,在手机上使用快拍和微信扫描后显示正常,无乱码.在delphi 7 / delphi 2010 / delphi XE5上调试通过.qrencode的源代码为C语言,支持生成png格式

IOS 二维码生成

这篇博客将会介绍二维码的生成. 由于没有什么东西值得长篇大论的,所以这里我就通过代码的实现介绍二维码. 第一部分 第一部分是二维码的简单生成没有其他重点介绍. 效果图 代码部分 // // ViewController.m // CX 二维码生成 // // Created by ma c on 16/4/12. // Copyright ? 2016年 bjsxt. All rights reserved. // #import "ViewController.h" #import

iOS开发 二维码生成

基于libqrencode的二维码生成 + (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size { unsigned char *data = 0; int width; data = code->data; width = code->width; float zoom = (double)size / (code->width + 2.0 * qr_margin); CGRect r

[开源]C#二维码生成解析工具,可添加自定义Logo (转)

二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,中文等等.今天就来跟大家分享一下我的二维码生成解析工具,主要功能就是生成二维码,并且可以添加自定义的Logo.当然,网络上面生成二维码的工具多如牛毛,生成二维码早已不再新鲜.这个工具的一个亮点就是可以识别二维码,下面就来具体看看吧,不过首先要补充一点二维码的知识. 一.二维码基础知识 一.