Web框架基本概念 现在再来写这篇文章显然有些马后炮的意思.不过正是因为已经学习了Flask框架, 并且未来计划学习更加体系化的Django框架,在学习过程中碰到的很多术语等等,非常有必要通过这样一篇看似都是空话但坚实地理论知识学习来填充自己 ■ MVC体系的框架 Python发展到今天,已经有了数十种不同的Web框架.其中比较著名,被广泛的使用的有Django,Flask,Tornado,Twisted等等.作为Web框架,它们都向使用者提供了对于网络和线程的封装,借此可以实现HTTP请求-应…
Python是最受欢迎的和最有效率的开发语言之一.Python能让你更快完成工作,并且更有效地集成系统.Python是动态的面向对象的语言.即便你刚刚开始学习Python,也立即就能获得生产力上的提升,并且代码的维护成本很低.它有很多其他语言没有的特性,并且它要求开发者编写易读的代码.相比于其他语言,Python让软件设计者能够使用更少的代码实现自己的意图.在这篇文章中,我们将介绍5种Python领域顶尖的Web开发框架. 1.Django 5个最好的Python Web开发框架Django是以…
[深度分析] Python Web 开发框架 Bottle(这个真的他妈的经典!!!) 作者:lhf2009913 Bottle 是一个非常精致的WSGI框架,它提供了 Python Web开发中需要的基本支持:URL路由,Request/Response对象封装,模板支持,与WSGI服务器集成支持.整个框架的全部代码约有 2000行,它的核心部分没有其他任何依赖,只要有Python环境就可以运行. Bottle适用于小型的Web开发,在应用程序规模比较小的情况下可以实现快速开发.但是由于自身功…
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don’t Repeat Yoursef).   花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又 重复发明轮子了).从前台到后台,好好折腾了一把,用到:H…
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don’t Repeat Yoursef).   花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又 重复发明轮子了).从前台到后台,好好折腾了一把,用到:H…
接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前,还有一个重要的事情要处理,那就是对站点进行初始化,如果不进行初始化,那么独立文件编写的接口将会找不到,要将异常错误写入日志文件也会找不到路径,下面先上代码. 打开main.py文件,改为下面代码(大家可以比较一下和之前代码有什么不同) #!/usr/bin/evn python # coding=u…
我的第一个python web开发框架系列博文从17年6.7月份开始写(存了近十章稿留到9月份才开始发布),到今天结束,一年多时间,想想真不容易啊. 整个过程断断续续,中间有段时间由于工作繁忙停了好长时间,到今年6月份才稍微能挤出些时间来,想想自己年初定下的目标,咬咬牙重新开动,几个月坚持下来,比自己预计目标提前了3个多月时间完成了. 整个系列引用几个虚拟角色聊天的方式来展开说明,是因为很多开发常识,如果在代码中间冒然插入会感觉很突然,而使用聊天问问题的方式来展开说明,可能会更容易理解.当然后面…
花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用.项目计划的实时动态,可以方便地被项目成员查看(^_^又重复发明轮子了).从前台到后台,好好折腾了一把,用到:HTML.CSS.JavaScript.Apache.Python.mod_wsgi.Django.好久不用CSS和JavaScript了,感到有点生疏了,查了无数次手册.后台Django开发环境的搭建也花了不少时间和精力.记录下来,免得以后走弯路.同时给大家推荐一下Django框架,如果你想非常快速地编写…
由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机会去参加各种沙龙或交流会,有空时就啃啃技术书籍,又或者看看一些文章或源友,努力向博客园大牛们学习. 由于工作关系,这两年很少接触C#,一直在做产品设计.项目设计.架构设计,15年底公司有机会参加了个小项目开发,使用的是python语言开发web版的TMS,从而一发不可收拾喜欢上了python.在体验…
小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML和Jquery,对数据库一知半解,看来要完成这个项目也不是一件容易的事情.想到这些小白顿时头都大了起来,想要开干却无从下手,所以只能找对自己挺照顾的部门老大请教一下. 人物介绍:老菜,部门老大,IT老民工,有着十多年开发经验的码农,做过各种项目,开发经验十分丰富,是个热心助人的老好人. 小白:老大救…
以前用web.py(另外一款轻量级web开发框架)做一个监控管理平台,没有做特别的记录就不好拾起来.最近做一个日志聚合系统,使用的是django,这次就记下来,方便查询. Django是一个高效的web开发框架,上手容易,便于调试和发布. 设计模式 它的设计遵循经典的web设计架构-MVC(Model-view-controller),一个应用分为四部分: models.py:文件主要用一个 Python 类来描述数据表. 称为 模型(model) .本文不对model做详细介绍,数据库的存取是…
Python除了爬虫.深度学习(人工智能).数据分析等外,还可以用来开发网站系统,如我们常见的知乎,豆瓣等都是用Python开发的网站系统. 今天辰哥就来教大家如何新建属于自己的Django项目,让Django学习不再迷茫,本文会以图文的形式,一步一步的讲解,让大家看完本文后对Django不再陌生. 1.Django入门 1.安装环境 pip install django 通过上面的命令可以安装好django环境 2.新建Django项目 django-admin startproject ch…
中午吃饭时间到了,小白赶紧向老菜坐的位置走过去. 小白:老大,中午请你吃饭. 老菜:哈哈...又遇到问题了吧,这次得狠狠宰你一顿才行. 小白:行行行,只要您赏脸,米饭任吃,嘻嘻,我们边走边聊. ...... 小白:老大,我照您上次讲的办法都做完了,一步步执行,方向和条理清晰了很多,现在马上要进入编码了,所以想让您再指点一下. 老菜:嗯嗯,做的还不错嘛,孺子可教也. 编码相关的一些内容也是老生常谈的东西,它就好像起一座高楼大厦,如果没有设计图纸,没有将基础打好,那么可想而知建造出来的质量怎么样了.…
第一部分说明 第一部分大概有20来章,主要讲的是一些开发常识.开发前中后期准备内容.开发环境与服务器部署环境安装设置.python基础框架结构与功能等内容,代码会比较简单. 本系列会以故事的方式,向大家描述一位有点开发基础的程序猿,怎么将一个小系统,根据需求的增加,以及对技术的追求,慢慢的通过重构,在解决各种技术难题的过程中,完善自己的架构,开发出一个功能比较完善的开发框架.代码开始会写的比较简单.入门级的,然后会根据需求慢慢重构成有体系的框架. 主人公:小白——计算机专业刚毕业的程序猿,有点内…
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. 到晚上下班后回到家里,打开电脑开始写起代码来......(传送门: python开发环境搭建 ) 要写一个web服务,首先要做的就是实现程序的入口,所以先来个Hello World吧 1.创建项目 先在电脑创建这个目录 E:\Python\simple\code (一定要全英文,因为IDE有可能不…
PS:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住,并懂得每个函数的用法,在什么时候去调用,清楚它输入的参数类型.能处理的参数类型和输出的结果是什么.它需要动手去调用,去大量的测试,这样才能真正掌握.对于初学者,最好将这些函数和测试用例全都照着录入一次,你会有不一样的体会,我自己去学习一个新框架时,都会尽量将底层的代码亲手录入一次,而不是用复制粘贴.…
PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. 下面来说说工具函数包,如果想要快速学会一个新的框架,首先要做的事情就是熟悉工具函数包,一方面,能快速知道有哪些基本功能可以直接调用,不用重复造轮子:另一方面,查看项目代码时,会比较快的进入角色,能看明白很多代码是做什么用的,因为工具函数包被调用的机率是最大的. 那么怎么学习呢?当然是有节奏有计划的…
string_helper.py是字符串操作包,主要对字符串进行检查.过滤和截取等处理. #!/usr/bin/evn python # coding=utf-8 import re def check_string(text, pattern): """ 检查字符串是否符合指定规则 :param text: 需要检查的字符串 :param pattern: 正式表达式,如:'^[a-zA-Z]+$' :return: 含有指定字符时返回真,否则为假 ""…
这个小网站终于成功上线,小白除了收获一笔不多的费用外,还得到女神小美的赞赏,心中满满的成就感.这一天下班后,他请老菜一起下馆子,兑现请吃饭的承诺,顺便让老菜点评一下. 小白:老大,在你的指导下终于完成了我人生当中第一个项目,非常感谢. 老菜:挺不错的,在这么短时间完成了一个项目,值得祝贺一下. 小白:老大,代码你看了没有,你觉得有什么问题或需要改进的地方吗? 老菜:你自己完成后,重新查看代码有什么想法? 小白:嗯,我觉得有好多地方代码都是一样的,重复的,复制粘贴后改起来容易出错,其他的有些地方感…
前面的菜单.部门.职位与管理员管理功能完成后,接下来要处理的是将它们关联起来,根据职位管理中选定的权限控制菜单显示以及页面数据的访问和操作. 那么要怎么改造呢?我们可以通过用户的操作步骤来一步步进行处理,具体思路如下: 1.用户在管理端登录时,通过用户记录所绑定的职位信息,来确定用户所拥有的权限.我们可以在登录接口中,将该管理员的职位id存储到session中,以方便后续的调用. 2.登录成功后,跳转进入管理界口,在获取菜单列表时,需要对菜单列表进行处理,只列出当前用户有权限的菜单项. 3.在点…
在周末的一个早上,小白还在做着美梦,就收到了小美的连环追魂call,电话一直响个不停. 小白打着哈欠拿起电话:早上好美女. 小美:出事了出事了,我们公司网站一早访问是一片空白,什么内容都没有了,你赶急上去看看是怎么回事. 小白一听到马上紧张了起来,赶紧说:好的,我先看看,一会回电话给你. 小白说完赶紧打开电脑,登录网站查看,发现网站内容不见了,然后登录后台查看,发现后台产品记录都不见了,公司简介和联系我们也是空白的...... 小白赶紧打通小美电话,和她沟通了起来:这是什么时候发现的?你们网站最…
书接上一回,小白和老菜聊到代码的版本控制和接口文档 小白:为什么要做版本控制,我不弄版本控制不也完成了项目了吗?要做版本控制不是很麻烦,又要安装服务又要提交代码,代码又不是多人用开发,还要写文档...... 老菜:这就是你这些小白的思维,只看眼前不思长远.对于任何一个项目,你都不可能绝对的说它永远都是一个小项目:而项目完成后,同时也面临着不停的变更与修改,你不可能永远记得这个项目任何细节,随着时间的流逝,很多关键点与细节在你的记忆中就会变得越来越模糊,到时要重新修改时你就头大了.我之前有位同事,…
框架底层和接口终于改造完成了,小白再次找到老菜. 小白:老大,上次你对后台权限系统简单的讲了一下,我一点头绪都没有,现在有空完整的说一说吗? 老菜:说到权限系统,要讲明白真不容易,权限系统并不是越复杂越好,要根据项目的需要而定,有的系统只有几个人操作,并没有必须使用功能强大且复杂的权限管理系统:而有的大型企业,各地区存在分公司,业务与销售数据分级管理,系统数据甚至需要不同角色允许查看不同的数据列,对数据的增.删.查.改都有非常细致的限制,这就需要使用对应的功能强大的权限管理模块,来处理不同的业务…
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. 到晚上下班后回到家里,打开电脑开始写起代码来......(传送门: python开发环境搭建 ) 要写一个web服务,首先要做的就是实现程序的入口,所以先来个Hello World吧 1.创建项目 先在电脑创建这个目录 E:\Python\simple\code (一定要全英文,因为IDE有可能不…
接上篇文章,介绍一些实用的技巧和注意点.首次用MarkDown编辑,感觉行空隙太大,不是那么好看. GET/POST 前后端会有数据交互,使用JQuery来实现get/post请求 GET 方法1:通过正则表达式匹配url传递参数 $.ajax({ type:"GET", url:"/search/serviceInfo/" + $('#servicename').val() + "/", dataType: 'json',//预期服务器返回的数…
小白做好前端html设计后,马上开始进入数据库结构设计步骤. 在开始之前,小白回忆了一下老大在公司里培训时讲过的数据库设计解说: 对于初学者来说,很多拿到原型时不知道怎么设计数据表结构,这是很正常的事,可以通过借鉴别人的项目总结经验,慢慢就会了. 拿到原型后,我们要认真观察原型里显示的内容有那些,考虑一下这些内容中那些是不变的,即写死在页面中的,那些是需要后台更改变动的,将这些变动的记录下来,添加到数据字典中.在记录这些字段时,还要做的事就是分类,一个类别就是一个数据表.(当然如果初学者很牛的话…
PS:再次说明一下,原本不想写的太啰嗦的,可之前那个系列发布后发现,好多朋友都想马上拿到代码立即能上手开发自己的项目,对代码结构.基础常识.分类目录与文件功能结构.常用函数......等等什么都不懂,然后就想使用,我真的很无语,还有一些朋友有十几年开发经验也会问一些很基础的问题,我都不知道怎么回答了.一下子拿到整个项目的代码,初学者要上手并不是那么容易的事情,很多代码经过层层封装后,反复跳转调用,不弄晕就很不容易了,所以得一步步来,了解整个代码的发展历程,知道它是怎么变化的,了解常用代码函数的使…
和老大聊完后,小白回家接收到相关工具函数包后,就按要求开始干活,首先要做的是熟悉配置参数和了解工具函数有哪些实用的工具. 由于这个项目比较简单,所以不用创建那么多分类,只需要api.common.config.log和test五个目录就可以了 打开PyCharm,在前面的Hello World项目里分别创建好上面的目录(如下图),然后将相关文件拷贝到相应文件夹里 config文件夹里是const.py文件,这是一个存储常量的配置文件,在开发的过程中,可以将各种常量配置统一放到这里来,方便管理.…
db_helper.py是数据库操作包,主要有两个函数,分别是read()数据库读操作函数和write()数据库写操作函数.这个包的代码是从小戴同学分享的博文改造过来的. #!/usr/bin/env python # coding=utf-8 import psycopg2 from common import log_helper from config import const # 初始化数据库参数 db_name = const.DB_NAME db_host = const.DB_HO…
mail_helper.py是邮件操作包,用来发送邮件的. #!/usr/bin/evn python # coding=utf-8 import smtplib from email.mime.text import MIMEText from traceback import format_exc from config import const # 初始化邮件参数 smtp = const.SMTP port = const.PORT user = const.EMAIL_USER pas…