Python DJango 入门教程


网民原创 Python DJango 手册 环境搭建 项目创建 项目配置 应用创建 数据访问 数据编辑 网民 2011/9/22 1 / 17 目录 1. 环境 ....................................................................................................................................... 3 1.1. 安装 Python........................................................................................................................... 3 1.1.1. 说明 .................................................................................................................................. 3 1.1.2. 安装 .................................................................................................................................. 3 1.1.3. 验证 .................................................................................................................................. 3 1.1.4. 卸载 .................................................................................................................................. 4 1.2. 安装 DJango .......................................................................................................................... 5 1.2.1. 说明 .................................................................................................................................. 5 1.2.2. 安装 .................................................................................................................................. 5 1.2.3. 验证 .................................................................................................................................. 5 1.2.4. 卸载 .................................................................................................................................. 6 2. 起步 ....................................................................................................................................... 7 2.1. 项目 ....................................................................................................................................... 7 2.1.1. 创建项目 .......................................................................................................................... 7 2.1.2. 运行项目 .......................................................................................................................... 7 2.2. 后台 ....................................................................................................................................... 8 2.2.1. 说明 .................................................................................................................................. 8 2.2.2. 引用库 .............................................................................................................................. 8 2.2.3. Sqlite3 数据库 .................................................................................................................. 8 2.2.4. URL .................................................................................................................................... 9 2.3. 模块 ..................................................................................................................................... 10 2.3.1. 创建模块 ........................................................................................................................ 10 2.3.2. 创建数据 ........................................................................................................................ 10 2.3.3. 添加数据 ........................................................................................................................ 11 2 / 17 2.3.4. 创建页面 ........................................................................................................................ 12 2.3.5. 创建映射 ........................................................................................................................ 12 2.3.6. 配置映射 ........................................................................................................................ 12 2.3.6.1. 模块 MVC .............................................................................................................. 13 2.3.6.2. 项目 MVC .............................................................................................................. 13 2.3.7. 访问数据 ........................................................................................................................ 14 2.3.7.1. 模块 C ................................................................................................................... 14 2.3.7.2. 模块 V ................................................................................................................... 14 2.3.7.3. 项目 C ................................................................................................................... 15 2.3.8. 编辑数据 ........................................................................................................................ 16 2.3.8.1. 模块 V ................................................................................................................... 16 2.3.8.2. 模块 C ................................................................................................................... 16 3 / 17 1. 环境 1.1. 安装 Python 1.1.1. 说明 python 安装文件可从 http://www.python.org 下载; 例如 python-2.7.2.msi; 1.1.2. 安装 1) 运行 python 安装文件,例如“python-2.7.2.msi”; 2) 建议安装路径:.\\PythonServer\\PythonXXX;例如,python 的版本是 2.7.2,则安装路径为“.\\PythonServer\\Python272”,这样其他 python 相关的安装程序都可以放到.\\PythonServer 下,且能看清 python 版本; 3) 增 加 系 统 环 境 变 量 , 在 path 内增加 python 根 目 录 路 径 , 例 如 “D:\\PythonServer\\Python272”; 1.1.3. 验证 1) 进入 WINDOWS 命令行界面; 2) 输入“python”,则进入 python 的命令行,可以看到 python 的版本信息 和命令符; 3) 输入 python 代码,例如“ print ‘pyton is ok’ ”,会看到 python 打印出 一行“python is ok”,说明 python 安装成功; 4) 退出 python 命令行,输入“exit()”或按下“Ctrl+Z”皆可; 4 / 17 1.1.4. 卸载 1) 开始菜单->所有程序->python->卸载 即可; 2) 如果添加过操作系统环境变量,则手动删去; 5 / 17 1.2. 安装 DJango 1.2.1. 说明 DJango 框架安装文件可从 http://www.djangoproject.com 下载; 例如 Django-1.3.tar.gz; 1.2.2. 安装 1) 解压 Django-1.3.tar.gz;任何路径皆可;例如“D:\\ Django-1.3”; 2) 解压后的文件夹里可以看到有一个文件“setup.py”; 3) 进入 WINDOWS 命令行界面,输入“cd D:\\ Django-1.3”; 4) 运行命令“python setup.py install”; 5) 自动安装完毕; 6) 增加环境变量,在 path 内添加 django 的根目录路径,例如: “D:\PythonServer\Python272\Lib\site-packages\django” 以及 “D:\PythonServer\Python272\Lib\site-packages\django\bin”; 1.2.3. 验证 1) 进入 WINDOWS 命令行界面; 2) 输入“python”进入 python 命令行; 3) 输入 python 命令 >>import django >>print django.VERSION 如果打印出 DJango 的版本信息,例如“(1, 3, 0, 'final', 0)”,说明安装 成功; 6 / 17 1.2.4. 卸载 1) 找到 python 安装目录下的子目录, 例如“D:\PythonServer\Python272\Lib\site-packages”; 2) 可以看到有一个“django”文件夹和“Django-1.3-py2.7.egg-info”文 件,将该文件和该文件删除即可完成卸载; 3) 如果添加过操作系统环境变量,则手动删去; 7 / 17 2. 起步 2.1. 项目 2.1.1. 创建项目 1) 打开操作系统命令行界面; 2) 创建项目的 django 命令为“django-admin.pyc”; 3) 参数示例: django-admin.pyc startproject FirstDJProject 表示工程目录为“FirstDJProject”; 4) 注意,当前系统命令行的位置即为项目路径,因此,需提前在命令行里定位 到要存放项目的路径,再进行项目创建; 5) 创建好项目后,项目路下有 N 个文件; 2.1.2. 运行项目 1) 在系统命令行界面下定位到项目路径; 2) 项目路径下的 manage.py 即为该项目的管理文件;关于该项目的很多功能 都通过该管理文件来启动; 3) 输入“python manage.py runserver”即刻启动 django 自带的可作为 开发调试用的 WEB 服务器; 4) 看到提示 “Development server is running at http://127.0.0.1:8000/” 表示项目后台已经开始运行; 5) 打开浏览器里,输入 http://127.0.0.1:8000/,看到“It worked!”提示, 表示项目搭建成功; 8 / 17 2.2. 后台 2.2.1. 说明 django 自带一个后台管理界面,但是,在访问后台管理界面前,需要先进行如 下配置: 1) 配置引用库; 2) 配置数据库; 3) 配置 URL; 如果使用 sqlite3 数据库,不需要任何其他的安装,因为从 Python2.5 开始, sqlite3 就已经是 python 的标准模块,这也是 pyton 中一个唯一的数据库接口 类模块;如果使用其他数据库例如 mysql,则需要进行相应的安装;后续的示 例使用 sqlite3 数据库; 2.2.2. 引用库 1) 打开项目下的 settings.py 文件; 2) 找到 INSTALLED_APPS 配置; 3) 增加引用库’django.contrib.admin’;配置文件中已存在,只需去掉注释; 4) 该文件里一般默认都引用了 auth、contenttypes、sessions、sites 等库; 2.2.3. Sqlite3 数据库 1) 打开项目下的 settings.py 文件; 2) 找到 DATABASES 配置; 3) 配置 ENGINE 为“django.db.backends.sqlite3”; 配置文件中原有 “django.db.backends.”,只需增加对应的数据库名; 4) 配置 NAME 为 sqlite3 数据库存放路径和名称,例如 D:\PythonServer\StudyPython\FirstProject\MySqlite3.db; 9 / 17 5) 运行命令“python manage.py syncdb”,即自动创建后台所需的数据库, 同时会提示需要创建账户,可输入 yes 来创建,也可输入 no,自己手动创 建;命令执行完毕后,可以找到 NAME 配置的数据库文件; 6) 如果手动创建账户,则运行命令“python manage.py createsuperuser”; 2.2.4. URL 1) 打开项目下的 urls.py 文件; 2) 输入代码 from django.contrib import admin admin.autodiscover() 配置文件中已存在该代码,只需去掉注释即可; 3) 找到配置项 urlpatterns,增加如下配置 url(r'^admin/', include(admin.site.urls)), 配置文件中已存在该代码,只需去掉注释即可; 4) 输入“python manage.py runserver”启动项目服务器; 5) 在浏览器中打开“http://127.0.0.1:8000/admin/”,即可看到后台管理 界面,需要输入之前创建的账户才能进入管理; 10 / 17 2.3. 模块 2.3.1. 创建模块 目前的项目中还没有任何自己的应用模块,全是框架自动生成的东西; 可以创建自己的应用模块,在模块内创建数据表,并添加自己的页面; 1) 输入命令“python manage.py startapp xxx”,其中 xxx 是模块的名称, 例如:python manage.py startapp art 2) 此时在项目路径下多了一个名称为 art 的文件夹,该文件夹内保存的是与该 模块相关的文件; 3) 打开项目下的 settings.py 文件,找到 INSTALLED_APPS 配置; 4) 增加针对该模块的引用’FirstProject.art’; 2.3.2. 创建数据 1) 打开模块目录下的 models.py 文件,该文件是 MVC 中的 M,负责应用的 数据结构; 2) 文件中原有一句“from django.db import models”,现增加如下代码: class TB1(models.Model): content = models.CharField(max_length = 500) submit_date = models.DateTimeField(‘auto_now_add’) 表示要创建一个数据表,而该数据表的访问类名为 TB1;以此方式可以创建 多个数据表; 3) 输入命令“python manage.py sql art”,可以查看自动生成的针对 art 模块下的所有数据表的 sql 创建代码,例如: BEGIN; CREATE TABLE "art_tb1" ( "id" integer NOT NULL PRIMARY KEY, "content" varchar(500) NOT NULL, 11 / 17 "submit_date" datetime NOT NULL ); CREATE TABLE "art_tb2" ( "id" integer NOT NULL PRIMARY KEY, "content" varchar(100) NOT NULL, "submit_date" datetime NOT NULL ); COMMIT; 从该段代码可看出,数据表属于 art 模块,名称为 art_tb1,针对该数据表 的操作 MODEL 名称为 TB1; 4) 运行命令“python manage.py syncdb”则自动创建出数据表; 2.3.3. 添加数据 1) 在系统命令行模式下,定位到项目路径; 2) 输入命令“python manage.py shell”进入专门针对该项目的命令行模式; 3) 输入如下代码来添加数据: >>from art.models import TB1 //从 art 模块导入 TB1 MODEL >>from datetime import datetime //导入框架的 datetime >>Art.objects.create( //objects 表示数据表里的行 content = ‘MyContent1’, //content 字段 submit_date=datetime.now()) //submit_date 字段 >>… //以此方式添加多条数据 4) 接着可使用如下的代码简单的获取到数据表内的数据: >>all_line = TB1.objects.all() //获得 TB1 的所有行 >>print all_line[1].content //打印第一行的 content 字段 12 / 17 2.3.4. 创建页面 1) 页面一般统一放在 ProjectPath\Templates 目录下;Templates 是较常用 的名称,也可自行更改; 2) 在 Templates 下,针对应用模块的名称再单独创建子目录; 3) 例如“ProjectPath\Templates\art”表示该目录下存放的是针对 art 模块 的页面; 4) 这些页面就是 MVC 中的 V,负责应用的视图; 5) 在“ ProjectPath\Templates\art”下创建一个最简单的静态的 html 页面, 但注意 html 文件的编码方式需要为 utf8; 2.3.5. 创建映射 1) 打开模块目录下的 views.py 文件,该文件是 MVC 中的 C,负责应用的逻 辑处理; 2) 写入如下代码: from django.shortcuts import render_to_response def MyFirstView(rq): return render_to_response('art/Static1.html') 3) 函数 MyFirstView 只做一件事情,就是把页面跳转到 art 目录下的 Static1.html;注意,该路径用的是相对路径,也就是会在 Templates 目 录下寻找“art/Static1.html”,之所以能到 Templates 目录下寻找,就是 后续的配置映射做到的; 2.3.6. 配置映射 在一个项目内创建模块,并使用该模块,全部步骤可以分为两个部分:模块 MVC 和项目 MVC; 13 / 17 2.3.6.1. 模块 MVC 按照之前的描述,在项目内创建一个模块时,按照 MVC 的思路分为三个步骤: 1) M:即创建模块并在模块的 models.py 中创建数据; 2) V:即在“项目\Templates\模块”目录下创建该模块对应的各个页面; 3) C:即在模块的 views.py 中创建各个逻辑控制函数; 2.3.6.2. 项目 MVC 在完成一个模块的 MVC 之后,还需要在项目级别按照 MVC 的思路进行配置: 1) M:打开项目下的 settings.py 文件,找到 INSTALLED_APPS 配置;增加 针对该模块的引用’FirstProject.art’; 2) V:打开项目下的 settings.py 文件,找到 TEMPLATE_DIRS 配置;写入 模版路径: TEMPLATE_DIRS = ( 'Templates') 因此,编写控制函数时,如下的代码使得系统在 Templates 内寻找相应文 件:return render_to_response('art/Static1.html'); 3) C:打开项目下的 urls.py 文件;找到配置项 urlpatterns,增加配置: url(r'^test/', 'FirstProject.art.views.MyFirstView') 或者 url(r'^test/', 'art.views.MyFirstView'); 4) 完成了模块 MVC 和项目 MVC 配置后, 在浏览器中打开“http://127.0.0.1:8000/test/”, 即可看到 art/Static1.html 页面; 14 / 17 2.3.7. 访问数据 2.3.7.1. 模块 C 创建一个模块的控制器,用来生成页面数据以供页面显示; 打开模块目录下的 views.py 文件,添加函数如下: #引入 MODEL TB1 来访问数据表 art_tb1 from FirstProject.art.models import TB1 #定义函数 MyDataView def MyDataView(rq): #获取数据表内的所有行 data_all_lines = TB1.objects.all() #将数据返回给页面 return render_to_response( #将跳转到该页面 'art/DataView.html', #’all_lines’是页面内访问数据使用的名称 #data_all_lines 是该函数内的变量 {'all_lines':data_all_lines} ) 注意: 1) 该控制器返回给页面使用的数据类型是一个列表,名称为’all_lines’; 2) 在一个函数内,一定要注意缩进方式,如果用空格缩进,则所有行都只能用 空格来缩进,如果用 TAB 缩进,则所有行都只能用 TAB 来缩进,否则会报 告 IndentationError 错误; 2.3.7.2. 模块 V 在对应的模块页面目录下创建一个 UTF8 编码的 DataView.html 文件,用来显 示模块控制器所生成的数据: {% if all_lines %} 数据内容如下:
    {% for a_line in all_lines %} 15 / 17
  • {{ a_line.content }}
  • {% endfor %}
{% else %} 无数据可显示. {% endif %} 注意,在 HTML 代码内使用 python 脚本时, 1) 使用{% %}来包含 python 脚本; 2) 使用{{ }}来包含要显示的变量内容; 该 HTML 代码翻译为自然语言如下: {% 如果 all_lines 变量不为空 %} 数据内容如下:
    {% 循环处理每一行数据 %}
  • {{ 显示该行数据的 content 字段 }}
  • {% 结束循环 %}
{% 如果 all_lines 变量为空 %} 无数据可显示. {% 判断结束 %} 2.3.7.3. 项目 C 1) 打开项目下的 urls.py 文件; 2) 找到配置项 urlpatterns,增加配置: url(r'^viewdata/', 'art.views.MyDataView'), 3) 打开浏览器访问 http://127.0.0.1:8000/viewdata/;则可以看到页面显 示出目前的 art_tb1 数据表内的每一行的 content 内容; 16 / 17 2.3.8. 编辑数据 为了实现编辑数据的功能,可以在之前“访问数据”的基础上进行升级,只需要 升级模块 V 和模块 C 即可; 2.3.8.1. 模块 V 在原 DataView.html 文件的基础上,增加一个 form,包含一个编辑框来提交 数据:
1) 声明该form的”method”是get还是post,从而在模块C中可以用request 对象里的 POST 或 GET 属性来完成表单元素访问; 2) 该 form 的” action”配置表明,按下提交按钮后,浏览器将访问 http://127.0.0.1:8000/viewdata/; 3) 由此可见,对于页面(模块 V)来说,永远只考虑“发送请求给某个 URL”, 而具体该 URL 由哪个控制器(模块 C)来处理,是由配置来决定的; 4) 有一个输入框,name 为”new_content”表明在模块 C 中可以通过 request.POST.new_content 来访问该元素; 5) 该页面目前的功能为:首先显示模块 C 生成的数据,其次可以提交用户所输 入的新的 content 值; 2.3.8.2. 模块 C 根据目前模块 V 的升级,http://127.0.0.1:8000/viewdata/的请求到来时有 两种情况,但这两种情况都配置给同一个模块 C 的函数“MyDataView”: 1) 没有请求数据,即 POST 中没有数据; 2) 有请求数据,即 POST 中包含一个新的 content 值; 17 / 17 因此,在原 views.py 文件的“MyDataView”函数基础上进行升级: #因为根据 content 字段要创建新的一行数据内容, #因此需要自动生成 date_time 字段,故需要引入该库 from datetime import datetime #修改该控制函数 def MyDataView(rq): #函数入口处需要先判断是否有 new_content 字段: if rq.POST.has_key('new_content'): #根据新字段在数据表中增加一行数据 TB1.objects.create( #content 字段即为用户输入的内容 content = rq.POST['new_content'], #submit_date 字段由代码生成 submit_date=datetime.now()) ……原来的代码不变 此时再访问 http://127.0.0.1:8000/viewdata/,可以看到: 1) 页面首先显示目前 art_tb1 数据表中的所有数据; 2) 接着显示一个输入框,可以输入新的 content 数据并提交; 3) 提交数据后,页面刷新,再次显示目前 art_tb1 数据表中的所有数据,可看 到刚输入的新的 content 内容已经被加入到数据表中; 4) 如果报告 403 错误,则在项目配置文件 settings.py 中保证引用了如下两 个模块: 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfResponseMiddleware'
还剩17页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

scu_sadan

贡献于2013-05-14

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf