21.3.2 简单的表单组件
21.3.3 单选和多选组件
21.3.4 表单校验器
21.3.5 获取和设置表单组件中的数据
第22章 Python Web框架:Django
22.2 Django 基础知识
本节会介绍一些 Django 的基础知识,包括如何手工建立一个 Django 工程,如何使用 PyCharm 开发 Django 程序,以及获取用户请求信息,Cookie、Session 等内容。
22.2.1 建立第一个 Django 工程
本节将遵循学习新技术的标准做法,从 Hello world 开始学习 Django。为了让读者更有信心,本节首先要做的是让第一个 Django 程序能运行起来,而且不需要编写一行代码。 如果成功安装了 Diango,会有一个名为 django-admin.py 的脚本文件,如果使用的是 Anaconda:Python 开发环境,那么这个脚本文件就在<Anaconda 安装目录>/bin 目录中,建议将这个目录添加到PATH 环境变量中,这样在任何目录都可以执行 diango-admin.py 脚本文件。
现在进入终端(Windows是控制台)输入如下的命令,会在当前目录建立一个 HelloWorld 子目录该目录就是 Django 工程目录。 django-admin.py startproject HelloWorld 现在进入 HelloWorld 目录,然后执行下面的命令运行程序: python manage.py runserver 运行这行命令后,如果出现如图 22-1所示的信息,表示某些资源未被初始化现在按 Ctrl+C 键终止程序,然后执行下面的命令进行初始化: python manage.py migrate
然后再执行 python manage.py runserver,就会正常运行程序,这个程序其实是 Django 内建的 Web服务器,直接可以处理 HTTP 请求。现在打开浏览器,在浏览器地址栏中输入如下的 URL: http://127.0.0.1:8000 如果在浏览器中显示如图 22-3所示的内容,表示已经成功创建并运行了第一个基于 Django 的 Web应用。
访问 http://ocalhost:8000,也可以得到图22-3 所示的效果。但通过远程访问的方式却显示“无法问此网站”。例如,假设本机的P 地址是 192.168.31.3,访问 http:/192.168.31.3:8000 是无法得到22-3 所示的页面的。要知道为什么会出现这个问题,以及如何解决这个问题,请参看下一节的内容。
22.2.2 Django工程结构分析
22.2.9 读写 Session
Sesion 与Cookie 有些类似,都是通过字典管理 key-value 对。只不过 Cookie 是保存在客户端的字典,而Session是保存在服务端的字典。Session可以在服务端使用多种存在方式,默认一般存储在内存中,一旦Web服务重启,所有保存在内存中的 Sesnion就会消失,为了让 sesion 即使在 Web服务重启后仍然能够存在,也可以将 Session 保存到文件或数据库中。不管如何保存 Session,操作上都是一样的。
Session 的另外一个重要作用是跟踪客户端。也就是说,当一个客户端浏览器访问 Web 服务后,关闭浏览器,再次启动浏览器,再次访问 web 服务。这时 Web 服务就会知道这个浏览器已经访问两次 Web 服务。这就是通过 Session 跟踪的。每一个客户端访问 Web 服务时都会创建一个单独的Session,同时为这个 Session生成一个ID,这里就叫它 Session-ID。这个 Session-ID 会利用 Cookie的方式保存在客户端,如果客户端再次访问 web 服务时,这个 Session-ID 也会随着 HTTP 请求发送结Web 服务,Web 服务会通过这个 Session-ID 寻找属于这个客户端的 Session。也就是说,如果客户端不支持 Cookie,那么 Session 是无法跟踪客户端的。当然,也可以用其他方式保存这个 Session-ID,但这个不在本章的讨论范围,这里只讨论 Session 和 Cookie 的关系。
读写 Session 都需要使用路由函数的request 参数,WSGIRequest 对象有一个 session 属性,这是一个字典类型的属性,所以可以用操作字典的方式读写 Session 中的 key-value。
22.2.10 用户登录
本节会利用 Session 实现一个用户登录的例子,这也是最典型的 Session 案例。实现的基本原理是当登录成功后,会将用户名以及其他相关信息写入 Session。如果用户再用同一个浏览器访问该 Web应用,就会从与客户端对应的 Session 中重新获取用户名和其他相关信息,这也表明用户处于登录状态,所以当用户第二次访问该 Web 应用时,除非 Session 过期,否则就无须登录了。
22.3 Django模版
第四篇 Python科学计算与数据分析
第23章 科学计算库:NumPy
23.3.2 获取数组值和数组的分片
NumPy 数组也指出与 python 列表相同的操作,例如,通过索引获得数组值,分片等。
第24章 数据可视化库:Matplolib
24.1 Matplotlib 开发环境搭建
如果使用的是 Anaconda Python 开发环境,那么 Matplotlib 已经被集成进 Anaconda,并不需要单独安装。如果使用的是标准的Python 开发环境,可以使用下面的命令安装 Matplotlib: pip install matplotlib 如果要了解 Matplotlib 更详细的情况,请访问官方网站。网址如下: matplotlib.org 安装完 Matplotlib 后,可以测试一下 Matplotlib 是否安装成功。可以进入 Python 的 REPL 环境然后使用下面的语句导入 matplotlib.pyplot 模块,如果不出错,就说明 Matplotlib 已经安装成功了。import matplotlib.pyplot
24.2 基础知识
24.3 定制颜色和样式
第25章 数据分析库:Pandas
第五篇 Python Web爬虫技术
第26章 网络爬虫与Beautiful Soup
第27章 网络爬虫框架:Scrapy
第六篇 Python项目实战
第28章 Web项目实战:基于Flask的美团网
第29章 Web项目实战:基于Django的58同城
第30章 Web项目实战:天气预报服务API
第31章 Web项目实战:胸罩销售数据分析
第32章 GUI项目实战:动态修改域名指向的IP
第33章 游戏项目实战:俄罗斯方块
网络爬虫