web框架Django之MyQR模块

首先我简单的介绍下django;django官网解释就是如下:Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。

它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

但是它在开发者得嘴里可有着python最美框架,“美男子”之称;它是基于python最有代表性的web框架。

当我听到这个时,觉得还比较吸引我,简单学习了一下,如有不对之处还请各位大神纠正指出

一.Django特点

1.功能完善、要素齐全:该有的、可以没有的都有,自带大量常用工具和框架,无须你自定义、组合、增删及修改。

2.完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档。开发者遇到问题时可以搜索在线文档寻求解决方案。

3.强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。

4.灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。新版的2.0,进一步提高了URL编写的优雅性。

5.丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签,并且与其ORM的用法非常相似。

6.自带后台管理系统admin:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。

7.完整的错误信息提示:在开发调试过程中如果出现运行错误或者异常,Django可以提供非常完整的错误信息帮助定位问题。

好了简单介绍之后我们来看看在Linux中Django如何实现将图片生成一张二维码~ 这里我们就直接跳过前端页面上传图片的流程传输倒后台再去生成图片,我们简单的看下,如果直接将一张图片丢Django项目中直接执行命令就可以生成一张带二维码得图片;

上篇文章已经输入如何搭建Django服务,以及创建项目 创建应用,这里我们接着讲,介绍下项目下的文件信息基于Linux搭建Python环境启动Django服务

startproject 命令创建一个目录,包含4个文件:

文件如下:

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。这是一个空文件,一般你不需要修改它。

manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。键入python manage.py help,看一下它能做什么。你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py :该 Django 项目的设置或配置。查看并理解这个文件中可用的设置类型及其默认值。

urls.py:Django项目的URL设置。可视其为你的django网站的目录。目前,它是空的。

尽管这些的文件很小,但这些文件已经构成了一个可运行的Django应用。

在来介绍下项目下得应用app这里着重讲下views文件

在Django中views.py 文件可是说是项目的指挥中心,其实views.py文件的作用更像是我们之前提到的MVC模式中的“C”,也就是起到了项目控制的作用。

这个文件没有必须的位置和名称,所有的文件使用views的时候都是通过import引用的,这就和你写一个普通的python模块一样。但是通常情况向我们会把这个控制模块以views.py为名称放到每一个app文件夹中,其他功能的模块文件取有一定意义的名字即可。

由于有这种模块引用的需求,所以在django工程下的每个目录一般都会有__init__.py文件。

我们可以通过view对urls,模板,模型几个部分起到的作用来描述下这个文件的功能

urls文件匹配对应的URL,查找指定的函数进行URL处理,而这个处理函数即包含在views文件中。

1>django中模板多样的写法使前端的展现更加灵活,而这往往需要后端控制函数传递大量数据。Views文件中的函数匹配了对应的URL后会决定使用哪个模板,传递什么样的参数到模板

2>数据交互是后端功能最为重要的一部分。Views文件引入模型模块,可以进行数据过滤分析提取等数据库操作功能。此外,views文件还能够获取前端的请求,得到表单数据进行比对分析插入数据库等。

3>由于是前后端连接的桥梁,views在很大程度上还需要对安全性负责,有安全校验的作用

4>我们之前说过除了基本的网站控制我们还会写其他的“views”,都是逻辑及功能的补充,只是在命名上可以根据需求。比如验证码等功能可以单独写在一个文件中供其他文件调用。

简单介绍了下项目 应用文件信息 接下来讲讲怎么实现 图片生成二维码

这里前提我们要先安装下我们本次使用的模块库

pip3 install MyQR -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip3 install views -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip3 install app -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

首先我们安装几个必须的库,因为我们这次用到的就是qrcode库底层的myqr模块实现生成二维码,qrcode介绍地址:

https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

进入正题>>>

编写views文件,主要实现文件,简简单单十几行代码,调用模块>>myqr实现二维码代码(图二)

备注下几个主要字段

words:填写图片访问的地址,例如http://www.baidu.com

picture:传入要生成图片的名称,例如项目文件中有一张图片

***.png.这里可以直接写成 picture=‘***.png’

save_name:生成图片的名称 这里我们保持不变 赋值None

save_dir:保存的路径(自定义)

编写项目文件中得urls文件,配置路由

编写项目文件中的settings.py文件设置下相关配置

简简单单实现如下几处文件,基本都是需要用到的,

这里我们直接跳过前端上传文件 ,之前我有篇文章已经写过如果通过django实现前端页面上传文件,这里就不说了,直接看主要的,好了 ,我们可以开始生成了直接传入一张图片倒项目路径 project

直接在当前路径下执行命令

python3 myqr.py https://www.xuanwo001.com -p ./666.jpg

在执行ll命令一下,查看是否生成666_qrcode.png ;这样我们的一张带二维码得图片就生成了。

具体操作命令以及图片传入传出为什么那样做参考这边文档

https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

如果学习可以现在windows实践,比linux简单,很多库无需安装,pycharm自带。大概了介绍下过程,实践过程碰到问题,多百度解决方案,深度学习

本文分享自微信公众号 - 猪圈子(Tester-sc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云服务器搭建网站教程

腾讯云服务器搭建网站教程【PHP+MYSQL环境】

到目前为止本人做网站已经有半年了,对服务器配置略有了解。目前基本掌握了在cent os和windows server 2008/2012系统下搭建PHP+MYS...

64720
来自专栏自学测试之道

接口自动化之主流程请求封装

如上,这个只是简单的例子,后续还可以添加case关联、header、method等信息

17470
来自专栏网站漏洞修复

详细渗透测试的网站内容分析

上一节讲到渗透测试中的代码审计讲解,对整个代码的函数分析以及危险语句的避让操作,近期很多客户找我们Sine安全想要了解如何获取到网站的具体信息,以及我们整个渗透...

8610
来自专栏陶士涵的菜地

[视频教程] 配置mysql用户的权限并查询数据

MySQL安装后,需要允许外部IP访问数据库。修改加密配置与增加新用户,配置用户权限 修改配置文件,增加默认加密方式的配置项。

7020
来自专栏小白帽学习之路

集成环境phpstudy后门利用复现

phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安...

20020
来自专栏changxin7

09.Django基础七之Ajax

    AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascrip...

15620
来自专栏程序通事

不知道如何实现服务的动态发现?快来看看 Dubbo 是如何做到的

上篇文章如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他大致了解了注册中心作用以及 Dubbo Registry 模块源码,这篇文章将深入 Dub...

10110
来自专栏老码农的一亩三分地

IT兄弟连 HTML5教程 HTML文档头部元素head

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

9520
来自专栏前端之攻略

Bootstrap Table 后端分页

之前一直用的前端分页,在数据不是太多的情况下,前端分页还是很方便的,也可以使用自带的搜索等功能,如果数据量比较多的情况就要使用后端分页。

14130
来自专栏陶士涵的菜地

[PHP] 安装PHP报错“Primary script unknown”的解决方法

当安装完最新版的nginx和最新版的PHP以后,使用niginx默认配置文件中的PHP配置会有错误 访问指定目录下的php文件时,显示File not foun...

8720

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励