前记:

坚持写学习笔记今天是第六天了,今天事情有点多想起来还没写赶快补起来,学习Python已经快一个星期了,大部分的知识点已经跟着廖雪峰老师的教程了解了一下,由于自学能力不强还有很多知识点掌握不牢固,在把教程内容全部总结完了之后还需要一段时间去熟练掌握Python的开发技术,计划是找个Diango项目上手,在这个过程中牢固Python基础知识和了解Diango基本框架,应该是跟着视频教程做把。短期的计划就是这样。但是这几天看了看招聘广告数据结构算法也是很看中的,大一时数据结构学的还行可是现在可能忘得差不多了,还有数据库一直都是没有学好,现在用到的数据库很少也不知道自己到底几斤几两,数据结构算法以及数据库都是以后需要重点学习的方面了,加油!每天都要坚持写随笔!希望自己能坚持两个月

1.访问数据库:

SQLite:是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,SQLite的驱动内置在Python标准库中:

MySQL:是为服务器端设计的数据库,能承受高并发访问

SQLAlchemy:ORM技术:Object-Relational Mapping,把关系数据库的表结构映射到对象上,在Python中,最有名的ORM框架是SQLAlchemy

2.WSGI接口:

Web应用的本质:浏览器发送一个HTTP请求,服务器收到请求,生成一个HTML文档,服务器把HTML文档作为HTTP响应的Body发送给浏览器,浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示

Apache、Nginx、Lighttpd等这些常见的静态服务器:把HTML用文件保存好,用他们接收用户请求,从文件中读取HTML

WSGI接口(Web Server Gateway Interface):统一的接口处理TCP连接、HTTP原始请求和响应格式:

def application(environ, start_response):  #environ:一个包含所有HTTP请求信息的dict对象  start_response:一个发送HTTP响应的函数。
start_response('200 OK', [('Content-Type', 'text/html')]) #发送了HTTP响应的Header,两个参数:HTTP响应码和list表示的HTTP Header
return [b'<h1>Hello, web!</h1>']

wsgiref模块:Python内置符合WSGI规范的服务器,调用application()函数

# hello.py
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, web!</h1>'] # server.py
# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from hello import application # 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')
# 开始监听HTTP请求:
httpd.serve_forever()

命令行输入python server.py来启动WSGI服务器 成功!

3.Web框架:

Web App就是写一个WSGI的处理函数,针对每个HTTP请求进行响应和URL(包含GET、POST、PUT、DELETE等请求)

Flask:

from flask import Flask
from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST'])
def home():
return '<h1>Home</h1>' @app.route('/signin', methods=['GET'])
def signin_form():
return '''<form action="/signin" method="post">
<p><input name="username"></p>
<p><input name="password" type="password"></p>
<p><button type="submit">Sign In</button></p>
</form>''' @app.route('/signin', methods=['POST'])
def signin():
# 需要从request对象读取表单内容:
if request.form['username']=='admin' and request.form['password']=='password':
return '<h3>Hello, admin!</h3>'
return '<h3>Bad username or password.</h3>' if __name__ == '__main__':
app.run()

4.MVC:Model-View-Controller,模型-视图-控制器:

Model: Model是用来传给View,View在替换变量的时候,取出相应的数据.例子中的Model就是dict{ 'name': 'Michael' }

View:包含变量{{ name }}的模板,负责显示逻辑,替换一些变量,最终输出的就是用户看到的HTML。

Controller:处理URL的函数,例中def home()  ,负责业务逻辑

DAY6-Python学习笔记的更多相关文章

  1. 第六周 day6 python学习笔记

    1.Python面向对象编程OOP(Object Oriented Programming) 封装:可以隐藏实现细节,使代码模块化 继承:可以扩展已存在的代码模块,可以使代码实现重用 多态:一种接口, ...

  2. 【目录】Python学习笔记

    目录:Python学习笔记 目标:坚持每天学习,每周一篇博文 1. Python学习笔记 - day1 - 概述及安装 2.Python学习笔记 - day2 - PyCharm的基本使用 3.Pyt ...

  3. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  4. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  5. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  6. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  9. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  10. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

随机推荐

  1. 网络知识 ACL NAT IPv6

    第1章 ACL 访问控制列表 访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体. 访问控制表描述每一 ...

  2. 结对测试 vs 随机测试

    在接口测试过程中,最关键的是对参数的各种情况进行测试. 随机测试是指随机选择一些参数值来测. 结对测试是指parewise算法生成较高“性价比”的组合情况来测. 随机测试存在的问题 随机,这两个字本身 ...

  3. JUC——阻塞队列

    Queue是一个队列,而队列的主要特征是FIFO先进先出,要实现生产者与消费者模型,也可以采用队列来进行中间的缓冲读取,好处是:生产者可以一直不停歇的生产数据. BlockingQueue是Queue ...

  4. 用Python做一个翻译软件

    前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类似的Demo,给百度翻译发送一个post请求可以实现任意词组的翻译,利用 ...

  5. 通过python将xml文件转换成html文件

    #数据类型的转换 def main():    maxwidth = 100  #用于规范字段的长度    print_start()    count=0    while True:        ...

  6. Python遗传算法工具箱DEAP框架分析

    本文主要介绍python遗传算法工具箱DEAP的实现.先介绍deap的如何使用,再深入介绍deap的框架实现,以及遗传算法的各种实现算法. 代码可以参考 https://github.com/suma ...

  7. windows下在virtualbox中的Fuel Openstack 9.0 安装过程

    一.材料: 1.软件: virtualbox xshell(或putty,winscp) bootstrap.zip(580MB) mirrors(3.01GB) MirantisOpenStack- ...

  8. Spring Boot + MyBatis + Pagehelper 配置多数据源

    前言: 本文为springboot结合mybatis配置多数据源,在项目当中很多情况是使用主从数据源来读写分离,还有就是操作多库,本文介绍如何一个项目同时使用2个数据源. 也希望大家带着思考去学习!博 ...

  9. 第31次Scrum会议(11/19)【欢迎来怼】

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/11/19 17:05~17:34,总计29min. 地 ...

  10. Java里字符串split方法

    Java中的split方法以"."切割字符串时,需要转义 String str[] = s.split("\\.");