Django开发基础

将使用Django开发一个web应用的步骤记录下来,供参考。
首先环境搭建:
1、配置环境变量
   PATH = c:\python25;%PATH%
   PYTHONPATH=c:\python25\Lib;c:\python25\Lib\site-scripts;.
2、解压Django到某个目录
3、进入Django的解压目录,执行以下命令
   python setup.py install
4、测试django安装是否成功
   import django
   print django.get_version() 或django.VERSION
5、OK


6、使用django-admin.py创建Web工程项目目录结构
(0) 如果在你的PATH环境变量下,找不到django-admin.py,则应在PATH中增加配置%PYTHON_HOME%/Lib/site-packages/django/bin路径。(限于Linux)
(1) 进入某个工作目录下,运行以下命令
django-admin.py startproject studyres
说明:在Windows平台下必须给出django-admin.py的完整路径,比如
python C:\Python25\Scripts\django-admin.py startproject studyres

(2) 生成如下的目录结构
studyres/
|--- __init__.py   说明该目录是一个包
|--- manage.py     一个命令行工具,可以让你以多种方式与Django项目交互
|--- settings.py   Django项目的配置
|--- urls.py       Django项目的URL定义
|
|--- templates/    Django项目的页面目录
|       |--- hello.html
|--- views.py
|
(3) 进入项目目录,运行测试服务器
python manage.py runserver [IP:][port]
默认情况下runserver命令启动服务器的端口为8000,只监听本地连接,如果你希望改变端口,增加一个命令行参数即可
python manage.py runserver 8080
你也可以改变服务器监听的IP地址,当你同其它开发者分享一个开发站点时很有用
python manage.py runserver 0.0.0.0:8080
上面的命令使得Django监听任何网络接口,允许其它计算机连接该服务器

(4) 编写脚本测试studyres/views.py,内容如下:
#coding=utf-8
'''
测试服务器
Created on 2009-9-1

@author: yf
'''
from django.http import HttpResponse
def index(request):
    if(request.POST.has_key('name')):
       name = request.POST['name'];
    if(request.GET.has_key('name')):
       name = request.GET['name']
   
    # name = request.REQUEST['name']  
    return HttpResponse(u"您好,%s" % name)

(5) 在studyres/urls.py中进行映射配置
(r'^studyres/$','studyres.views.index'),

(6) 测试
http://localhost:8080/studyres/?name=12


7、为该项目创建多个应用模块
(1) 创建一个app模块,在项目目录下运行
python manage.py startapp usermanage
项目结构如下图
studyres/
|--- __init__.py  
|--- manage.py
|--- settings.py
|--- urls.py
|--- templates/
|       |--- usermanage/
|       |        |--- userlist.html
|       |--- hello2.html
└─usermanage
        models.py
        tests.py
        views.py
        __init__.py

(2) 修改项目的settings.py,安装app模块
INSTALLED_APPS = (
#   'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'studyres.usermanage',
)


(3) MySQL5数据库适配器安装及有关配置
MySQL数据库适配器,目前支持Python2.5的MySQL_python-1.2.2-py2.5.exe下载运行即可。
在项目的settings.py中进行数据库有关配置:
DATABASE_ENGINE = 'mysql'  # 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'studyresdb'   # Or path to database file if using sqlite3.
DATABASE_USER = 'root'     # Not used with sqlite3.
DATABASE_PASSWORD = 'root' # Not used with sqlite3.
DATABASE_HOST = ''       # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''      # Set to empty string for default. Not used with sqlite3.

(4) 修改settings.py有关zoneinfo信息
TIME_ZONE = 'Asia/Shanghai PRC'

(5) 建立模型 --- 在models.py中编写
#coding=UTF-8
from django.db import models
import datetime

#用户基本信息
class UserInfo(models.Model):
   
    class Meta:
        db_table = 'userinfo' #指定数据库表名,缺省为 应用名_模型类名
       
    username = models.CharField(max_length=50,unique=True)
    password = models.CharField(max_length=50)
    sex = models.CharField(choices=(('M','男'),('F','女')),max_length=1)
    createTime = models.DateTimeField(default=datetime.datetime.now)
   
    def __str__(self):
        return 'username=%s password=%s ' % (username,password)

(6) 在项目目录下运行脚本,建立必要的数据库表
    python manage.py syncdb
   该命令会根据INSTALLED_APPS设置的每个应用模块,搜索其数据模块以创建数据库表,然后调用每个应用的初始化代码,比如auth模块要求设置一个超级用户的信息yyf/yyf800来管理该Web应用服务。
在命令行中添加记录,在项目目录下运行
    python manage.py shell
>>> from studyres.usermanage.models import UserInfo
>>> page = UserInfo(username='',password='')
>>> page.save()
>>> p = UserInfo.objects.all()[0]
>>> p.username

(7) 建立控制器 --- 在views.py中编写
#coding=UTF-8

from django.shortcuts import render_to_response
from usermanage.models import UserInfo

#用户列表查询
def list(request):
    results = UserInfo.objects.all()
return render_to_response('usermanage/userlist.html', # 指定模块页面
{'userlist':results}  #指定数据
)

(8) 建立视图模板
Django会按以下顺序搜索页面模板文件:
   (i) 项目中的setting.py的TEMPLATE_DIRS中设置
   (ii) 应用模块下的templates/目录

  首先,在项目目录下手工创建templates目录,然后再根据应用模块名创建一个子目录以存放该应用的模板文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>用户管理</title>
</head>
<body>
<h2>用户列表</h2>
{% if userlist %}
<table border="1">
<tr><td>用户ID</td><td>用户名</td><td>密码</td><td>性别</td><td>创建时间</td><td>操作</td></tr>
{% for user in userlist %}
<tr>
<td>{{user.id}}</td>
<td>{{user.username}}</td>
<td>{{user.password}}</td>
<td>{{user.sex}}</td>
<td>{{user.createTime|date:"Y年n月j日 H:i:s"}}</td>
<td>修改&nbsp;删除</td>
</tr>
{% endfor %}
</table>
{% else  %}
<p>没有数据!</p>
{% endif %}
</body>
</html>
  最后,在settings.py中添加templates/目录到TEMPLATE_DIRS。
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.
    "D:/myprj/studyres/templates",
)

(9) 映射配置 --- 在urls.py中添加一条映射
    (r'^studyres/userlist','studyres.usermanage.views.list'),

(10) 测试
http://localhost:8088/studyres/userlist

 

你可能感兴趣的:(mysql,应用服务器,django,python,项目管理)