专栏首页python3Python Django 初试手记

Python Django 初试手记

在06年因为试图学习php而对python的介绍也看了看,不过当时没有时间去认真学习一下,直到三年后的今天才又开始重新认识这门很有意思的语言。

因为需要做python的web开发,所以选择了Django这个框架,首先来介绍一下步骤吧。

1:下载python,可以是最新的,然而我下载了python2.6之后,发现Django没有支持2.6相应的mysql链接库,所以今天暂时无法测试其数据库的相关内容了,做了一个Django模板的小例子,开始入门。

2:下载Django,我目前的版本貌似是Django-1.1-beta-1,下载完成后,在其目录里应该能找到setup.py 这个文件。 windows下cmd 执行python setup.py install,开始安装。

安装完毕后,建议检查 pythoninstalldir/Scripts 目录是否在你的 PATH 环境中,如果不在,建议将这个目录设置到 PATH 中。因为如果你采用标准的 Python 安装方法,那么 Django 会自动在 Scripts 目录下安装 django-admin.py 程序。这样,一旦你设置了 Scripts 在 PATH 中,就可以在命令行下任何目录中执行 django-admin.py 了。

执行django-admin.py startproject test 这样就在当前目录下创建了一个test的工作目录.

这个 test 将是我们以后工作的目录,许多讲解都是基于这个目录的。

__init__.py 表示这是一个 Python 的包 manage.py 提供简单化的 django-admin.py 命令,特别是可以自动进行 DJANGO_SETTINGS_MODULES 和 PYTHONPATH 的处理,而没有这个命令,处理上面环境变量是件麻烦的事情 settings.py 它是django的配置文件 uls.py url映射处理文件, Karrigell 没有这种机制,它通过目录/文件/方法来自动对应,而 Django 的url映射是url对于某个模块方法的映射,目前不能自动完成

OK,开始启动它吧

执行 manage.py runserver

一旦出现:

Validating models...
0 errors found.
Starting server on port 8000 with settings module 'newtest.settings'.
Go to http://127.0.0.1:8000/ for Django.
Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).

说明 Django 真的启来了。在浏览器中看一下,有一个祝贺页面,说明成功了。

现在开始构建我所要的东西吧。

add.py

# -*- coding: utf-8    -*- from django.shortcuts import render_to_response address = [         {'name':'alan', 'sex':'男','age':'25','address':'地址11111'},   {'name':'阿汐', 'sex':'男','age':'21','address':'地址222222'},   {'name':'sgicer', 'sex':'男','age':'23','address':'地址3333'},   {'name':'tidewind', 'sex':'男','age':'32','address':'地址4444'},   {'name':'cood', 'sex':'男','age':'22','address':'地址5555'},   {'name':'北极乞丐', 'sex':'男','age':'25','address':'地址6666'},   {'name':'北斗', 'sex':'男','age':'15','address':'地址7777'}         ] def index(request): return render_to_response('list.html',{'address': address})

第一行为了实现编码统一,不然当页面内有中文的时候会出现乱码。

导入了render_to_response 这个包,用来向页面输出模板文件以及其内容

address作为一个数组,包含了我所要动态输出的东西。

return render_to_response('list.html',{'address': address})

向list.html页面输出address这个数组的内容.

OK,让我们来看看list.html,很简单的一个遍历,从address数组中获取数据

<h2>通讯录</h2> <table width="100%" cellpadding="0" cellspacing="0" id="tab" > <tr> <th width="17%">姓名</th> <th width="17%">性别</th> <th width="22%">年龄</th> <th width="44%">地址</th> </tr>     {% for user in address %} <tr> <td>` user`.`name `</td> <td>` user`.`sex `</td> <td>` user`.`age `</td> <td>` user`.`address `</td> </tr> {% endfor %} </table>

此外,要让这个web应用成功的跑起来,需要做一些额外的配置.

修改urls.py

from django.conf.urls.defaults import * urlpatterns = patterns('',         # Example:         # (r'^testit/', include('newtest.apps.foo.urls.foo')),          (r'^add/$', 'newtest.add.index')          # Uncomment this for admin: #         (r'^admin/', include('django.contrib.admin.urls')), )

这里的(r'^add/$', 'test.add.index') 是为了映射我的add.py,当浏览器访问

http://xxx/add时,就对应到了我之前的add.py

修改 settings.py,在TEMPLATE_DIRS中增加一个路径,其中,我的list.html是放在当前目录的templates下的。

TEMPLATE_DIRS = (         # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".         # Always use forward slashes, even on Windows.         # Don't forget to use absolute paths, not relative paths.     './templates', )

最终,来看看结果吧. 很不错的体验,继续学习。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Unity3D的EditorUtili

       EditorUtility.SetDirty :这个函数告诉引擎,相关对象所属于的Prefab已经发生了更改。方便,当我们更改了自定义对象的属性的时候,...

    py3study
  • python serial读串口

    由于项目需求,需要从传感器节点和GPS中读取数据,所以学习了如何用python读串口。

    py3study
  • Django设置 DEBUG=False后静态文件无法加载解决

    前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示40...

    py3study
  • 如何判断目标站点是否为Django开发

    老文一篇,几个月以前发在【代码审计】小密圈里的文章,当时是写一个系列(Django安全漫谈),抽出其中的一部分,分享一下。 在黑盒测试的情况下,如何判断一个站是...

    小小科
  • [MySQL] 事务的ACID特性

    事务的ACID特性: 原子性(atomicity):一个事务是一个不可分割的最小工作单位,事务中的所有操作要么都做,要么都不做。

    陶士涵
  • Django | 创建我们的第一个应用

    佛系编程人
  • SAP CRM Settype handler class initialization logic

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    Jerry Wang
  • 爬了链家二手房数据来告诉你深圳房价到底多恐怖!

    需要说明一点,我们采集的数据中未包含大鹏新区/光明新区,因为这两个新区房源信息较少,加上pyecharts里面深圳的行政区也未包含这两个新区,所以没将这两个区的...

    Awesome_Tang
  • LeetCode 9. Palindrome Number分析代码

    最常规的思路是直接将数反转再对比,但实际上,我们只需要反转后半部分跟前半部分对比就可以了。两种情况,一是位数为偶数,直接对比,位数为奇数,大数除以10对比。

    desperate633
  • 商用芯片和网络虚拟化路在何方?

    白盒交换机近年来已经成为了一些大的网络设备厂商如思科、惠普企业(HPE)、Juniper等公司的阴影,根据摩尔定律,商用交换机芯片在专有平台上具有压倒性的价格/...

    SDNLAB

扫码关注云+社区

领取腾讯云代金券