本人的首先个python web开辟框架(9)——目录与安顿表达,python配置表明

我的第一个python web开发框架(9)——目录与配置说明,python配置说明

  和老大聊完后,小白回家接收到相关工具函数包后,就按要求开始干活,首先要做的是熟悉配置参数和了解工具函数有哪些实用的工具。

  由于这个项目比较简单,所以不用创建那么多分类,只需要api、common、config、log和test五个目录就可以了

  打开PyCharm,在前面的Hello
World项目里分别创建好上面的目录(如下图),然后将相关文件拷贝到相应文件夹里

  威尼斯网址开户网站 1

威尼斯网址开户网站,  config文件夹里是const.py文件,这是一个存储常量的配置文件,在开发的过程中,可以将各种常量配置统一放到这里来,方便管理。

#!/usr/bin/evn python
# coding=utf-8

### 设备常量参数模块,初始化各个常量 ###
##################################################################################
### 数据库参数 ###
# 数据库名称
DB_NAME = 'simple_db'
# 数据库链接地址
DB_HOST = '127.0.0.1'
# 数据库端口
DB_PORT = 5432
# 数据库账号
DB_USER = 'postgres'
# 数据库登录密码
DB_PASS = '123456'

##################################################################################
### 邮件服务参数 ###
# 邮件服务器
SMTP = 'smtp.qq.com'
# 邮件服务器端口
PORT = 465
# email发送账号
EMAIL_USER = '[email protected]'
# email发送密码
EMAIL_PWD = 'xxxxxxxxxxx'
# 系统异常邮件通知地址,多个地址用逗号分隔
EMAIL_LIST = '[email protected]'
# 异常邮件通知标题
# ——由于我们有开发环境、测试环境、预生产环境、生产环境等多个不同的环境,
# ——所以在发送异常通知时如果区分的话,可能就弄不清是那个环境出了问题,
# ——我们可以通过设置邮件标题为:开发、测试、预生产、生产等标签来方便区分是那个环境发送的异常通知
EMAIL_ERR_TITLE = '系统异常通知-simple-开发'

  PS:这里配置的是数据库链接参数和邮件服务参数,邮件服务主要用来自动发送代码运行过程中出现的各种异常,让开发人员能及时收到异常反馈。将里面的参数改为你自己的邮件服务就可以了,如果用的是QQ邮箱,发送密码不是你的QQ登录密码,而是QQ邮箱里的授权码,可以登录QQ邮箱后按下面路径获取:设置=》帐户=》POP3/SMTP服务=》然后开启POP3/SMTP服务,点击生成授权码就可以了

 

  在文件夹中可以看到__init__.py文件,这是python包的初始化文件,下面代码可以帮我们自动导入该文件夹下的python程序文件,如果有多层文件夹时,只要每个文件夹里有都有这个文件,它就会将所有子文件夹里的程序文件导入进来给我们调用(api文件夹里的__init__.py文件代码会与这个不一样,里面增加了导入出错自动发送异常通知邮件的功能,让开发人员及时了解python项目初始化时出现异常,方便及时对异常进行修改)

#!/usr/bin/evn python
# coding=utf-8

#遍历当前文件夹下的所有.py文件,然后用__import__导入到程序中
import os,sys
pro_path = os.path.split(os.path.realpath(__file__))[0]
sys.path.append(pro_path)
for root,dirs,files in os.walk(pro_path):
    for file in files:
        name,ext = os.path.splitext(file)
        if ext == '.py' and name != '__init__' and pro_path == root:
            __import__(name)

    for dir in dirs:
        if dir != '.svn':
            try:
                __import__(__name__ + '.' + dir)
            except:
                pass
    break

 

  本文对应的源码下载

 

作者:AllEmpty
出处:
有兴趣的朋友可以加加python开发QQ群:669058475
,大家一起探讨。大家有问题的话可以在群里发问,当然我平时工作也非常繁忙不一定会及时回复。

本文为AllEmpty原创,欢迎转载,但未经同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

web开发框架(9)——目录与配置说明,python配置说明
和老大聊完后,小白回家接收到相关工具函数包后,就按要求开始干…

Tornado网路框架

  小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场。不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML和Jquery,对数据库一知半解,看来要完成这个项目也不是一件容易的事情。想到这些小白顿时头都大了起来,想要开干却无从下手,所以只能找对自己挺照顾的部门老大请教一下。

解决10K以上的并发连接,C10K问题,设计使得其成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据库网站API)进行异步交互的工具。

 

背景:Apache会为每个HTTP连接分配线程池中的一个线程,如果所有线程都被占用并尚有内存可用时,则生成一个新的线程。大多数Linux都是默认线程堆大小为8MB,大负载下,维护一个大的线程池等待数据极易迅速消耗服务器的内存资源。

  人物介绍:老菜,部门老大,IT老民工,有着十多年开发经验的码农,做过各种项目,开发经验十分丰富,是个热心助人的老好人。

Tornado采用了单线程事件循坏的方式,因此所有应用程序的代码都要采异步和非阻塞的方式。

 

异步是指在结束之前就会返回。几种不同类型的异步接口:

  小白:老大救命啊!!!

回调参数(Callback argument)

  老菜:这次又怎么啦?

返回一个站位符(Return a placeholder)

  小白:我最近签了一个企业网站外包,要开干了却无从下手,不知怎么办,帮忙指点指点。

发送到一个队列(Deliver to a queue)

  老菜:难怪见你最近神神秘秘的,是什么项目,说来听听。

回调注册表(Callback registry)

  小白:是一家食品公司的企业宣传网站,有公司介绍、产品中心与联系我们三个栏目,有个简单的后台可以在线上编辑这些栏目的内容,已经按您之前讲的要求,出了份解决方案确认并签了合同。老大你知道我的技术基础比较薄弱,当时一冲动接下来后,现在不知怎么开始。

Tornado推荐使用协程来写异代码,协程通过使用python的yield关键字来代替链式调用从而挂起和恢复进程。用协程方式写的代码就跟同步代码一样却没有像同步一样浪费一个线程,通过减少上下文切换,协程使得并发更加容易。

  老菜:嗯嗯,这是最常见的外包项目,之前好像跟你们讲过。由于你没有完整的项目经验,所以无从下手是很正常的事情,下面我来讲讲要做这个项目,你得做好哪些方面的准备,然后再一项项去落实。

一个tornado应用总是会包含一个或多个RequestHandler的子类、一个将请求传入Handler的Application对象和一个用来启动应用的main()函数。

  首先,你得了解对方的需求,清楚要接的项目是做什么用的,需要实现什么功能,这一步你已经完成了。

Application对象

  其次,根据需求写一份方案,里面必须包括项目要实现的功能以及原型(界面设计),并和对方确认方案,最好和合同一起签名盖章,以确保万一后面扯皮时有理有据,另外如果将设计外包给做设计的朋友也容易出结果,不会反复返工,合同已经签了,方案这一步应该也没有多大问题。

RequestHandler的子类  —
在一个Handler中,我们通过调用render(),write()等函数来作为请求的响应。render()返回一个template网页和一系列相关参数给客户端;write()直接返回字符串、字节码、字典(作为JSON数据)。

  然后,你需要根据自己的能力和对方提出的要求,选择使用什么开发语言和数据库,选择对应的服务器。比如说你现在最熟悉的是python,那么你首选开发语言就必须是自己熟悉的,不然遇到一些坑你没法填,当然你什么开发语言都不太熟的话,可以找一个能帮你填坑的人也行。而数据库则是选择与开发语言比较般配的就行了,比如postgresql或mysql都行。服务器当然是选择Linux啦,python在Linux上运行比较稳定。选好开发语言后,你就得将自己的电脑安装好对应的开发环境了(传送门: python开发环境搭建 )

  跟着是前端的制作了(将原型转为html+css+js),一般来说专业的事情要交给专业的人员来做,前端页面的设计与制作一般来说,交给专业的设计师与前端开发人员会比较靠谱点,当然自己实现也没有问题,多一个学习的机会。如果自己实现的话,可以选择bootstrap,做出来的页面效果会比较美观漂亮,基于你的入门级水平,你可以使用
H-ui前端框架
这个国人开发的,轻量级,兼容性好,简单灵活,完全免费的前端框架。入门容易,也不存在版权收费问题。当然为了支持作者,建议项目收到款后去捐赠一下支持作者,毕竟免费开源也不容易。

  等前端页面和后台管理系统页面都制作好了以后,接着要做的是数据库设计,你根据你的原型里的功能与展示的字段,来考虑需要哪些数据表和字段来记录这些内容。

  完成这些后,就可以进入开发前最后一个步骤了,选择使用什么开发框架。pyhon比较有名的web开发框架是django,各种功能插件都有,但它比较重,像你做这种轻量级企业网站类型的话,建议使用bottle这种极简型的web开发框架来实现会比较好,优点是你可以从无到有,一手打造自己的开发框架,自由定制功能,活灵方便,可以快速成长。缺点是你会碰到很多坑,当然踩很多坑我觉得这也是非常好的优点,它让你能快速掌握python的使用技能。你可以参考我的一些python代码,尝试自己去打造属于你自己的开发框架。

  最后就是尽快开干,提早完工提前测试。

 

  听完老大讲完后,小菜鸟顿时觉得头脑清晰了很多,虽然有一些还是不太懂,但基本步骤和要点记录都了解了,等下班回去后尝试一下。

  ……

  花了一周左右时间,终于完成了前端html的制作。(点击下载前端html)

  注:前端设计与制作不属于本文所要讲解的内容,所以直接跳过,上面是已经制作好的前端html下载包,大家可以直接下载。

 

 

作者:AllEmpty
出处:
有兴趣的朋友可以加加
python开发QQ群:669058475
,大家一起探讨。大家有问题的话可以在群里发问,当然我平时工作也非常繁忙不一定会及时回复。

本文为AllEmpty原创,欢迎转载,但未经同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章