Diango 安装与入门示例

[b]Diango 安装指导[/b]


1. 前提
安装了 Python
Django要求 Python 版本 2.4 to 2.7.
推荐 2.5以上,它包含轻量级的数据库SQLite.

[b]目前推荐使用2.6版本,2.7的第三方包很多不能使用.开发工具:
Pydev
[url]www.pydev.org[/url]
安装配置:
python2.6 + django1.2.0 +eclipse 3.6 + pydev 1.6.0
注意插件版本, 不然会出问题的.
[/b]

Python 2.7 for Windows
[url]http://www.python.org/ftp/python/2.7.1/python-2.7.1.msi[/url]

Django 官方版本
[url]http://media.djangoproject.com/releases/1.2/Django-1.2.4.tar.gz[/url]

2. 安装 Python 2.7
直接安装即可,安装目录E:\Python217.
配置环境变量:
PATH
加入目录 E:\Python217
新建PYTHONPATH
加入目录
E:\Python313\pyfiles,此目录用于创建你自己的*.py文件.

3. 安装 Django 1.2.4
解压Django-1.2.4.tar.gz到E:\
CMD进入目录E:\Django-1.2.4\
CMD> setup.py install

注意:
3.1 如果提示
if u'SVN' in version
语法错误
把u去掉即可,类似错误同样处理.
这主要是因为解释器不能识别这种unicode字符串语法.

3.2 如果安装了更高版本的Python,请先卸载.卸载后不用重启.
因为Django可能安装到高版本.

4. 验证
4.1 检查目录:\Python217\Lib\site-packages下是否有diagno目录.site-packages目录是第三方包存放的目录.
4.2 CMD>python
>>>import django
>>>django.get_version()

显示:1.2.4
>>>

5. 安装完成.

6. 示例

6.1 创建项目文件夹:
E:\python_projects

6.2 创建项目mysite
6.2.1 配置环境变量PATH
加入
E:\Python217\Lib\site-packages\django\bin

6.2.2 CMD进入E:\python_projects.
> django-admin.py startproject mysite

在E:\python_projects\mysite目录下会生成4个文件
__init__.py
manage.py
settings.py
urls.py

__init__.py: 一个空文件,标识mysite是一个Python包.

manage.py: 一个与Django交互的命令行工具.

settings.py: 项目配置文件.

urls.py: URL的声明,使用正则表达式.

6.3 启动自带的纯Python语言实现的开发者WEB服务器
6.3.1 CMD进入mysite目录
> manage.py runserver


E:\python_projects\mysite>manage.py runserver
Validating models...
0 errors found

Django version 1.2.4, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.



6.3.2 访问服务器
[url]http://127.0.0.1:8000/[/url]

显示:
It worked!
Congratulations on your first Django-powered page.
Of course, you haven't actually done any work yet. Here's what to do next:

•If you plan to use a database, edit the DATABASES setting in mysite/settings.py.
•Start your first app by running python mysite/manage.py startapp [appname].
You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

6.3.3 修改服务器IP和端口
manage.py runserver <ip>:<port>
默认端口8000

6.4. 安装数据库
6.4.1 配置Python自带的SQLite数据库
修改setting.py的DATABASES变量.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'E:/python_projects/mysite/db/test.db', 'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}


6.4.2 同步数据库
> manage.py syncdb

提示是否创建Django超级用户:YES
USERNAME: admin
PASSWORD: admin



E:\python_projects\mysite>manage.py syncdb
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superuse
rs defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'cs'): admin
E-mail address: amos_tl@126.com
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Permission model
Installing index for auth.Group_permissions model
Installing index for auth.User_user_permissions model
Installing index for auth.User_groups model
Installing index for auth.Message model
No fixtures found.

E:\python_projects\mysite>




6.4.3 创建应用
项目与应用的区别:
一个项目可包含多个应用,一个应用可属于多个项目.简单理解就是应用是可重用的.

下面开始创建一个投票的应用.
首先创建应用

E:\python_projects\mysite> manage.py startapp polls

创建成功后目录结构:
polls/
__init__.py
models.py
tests.py
views.py

6.4.3.1 创建模型
模型定义的DRY原理:Don’t repeat yourself 不做重复的事情.
只在一个地方定义模型,自动获取数据.

投票应用我们定义了两个模型.
投票(问题,日期)
投票选择(选择,计分)
每一个选择关联一个投票.
模型定义如下:

models.py

from django.db import models

class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')

class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()


Poll和Choice是models.Model的子类.其中的属性代表表字段.它们是Field字段类的实例.
这里还用到了外键关系.
Django支持常用的数据库关系:多对多,多对一,一对一.

6.4.3.2 激活模型
配置setting.py文件:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'mysite.polls',
)

6.4.3.3 查看模型SCHEMA
> manage.py sql polls

E:\python_projects\mysite>manage.py sql polls


BEGIN;
CREATE TABLE "polls_poll" (
"id" integer NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" datetime NOT NULL
)
;
CREATE TABLE "polls_choice" (
"id" integer NOT NULL PRIMARY KEY,
"poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"),
"choice" varchar(200) NOT NULL,
"votes" integer NOT NULL
)
;
COMMIT;



这条SQL并没有实际在数据库执行,要执行它,同步数据库即可:
> manage.py syncdb

6.4.3.4 查看应用索引,自定义SQL,表创建SCHEMA,表和索引创建SCHEMA
> manage.py sqlindexes polls
> manage.py sqlcustom polls
> manage.py sql polls
> manage.py sqlall polls

6.4.3.5 删除SCHEMA
> manage.py sqlclear polls

6.4.3.6 验证模型
> manage.py validate

6.5 调用Python Shell
> manage.py shell

不直接调用PYTHON的原因,是manage.py做了两件事:
a) 通过 setting.py 的 INSTALLED_APPS 导入模块 mysite, polls 到 sys.path.
b) 设置DJANGO_SETTINGS_MODULE 模块环境变量,它的值是 mysite.settings 模块.

6.6 调用模型

>>> from polls.models import Poll, Choice

>>> Poll.objects.all()
[]

>>> import datetime
>>> p = Poll(question="What's up?", pub_date=datetime.datetime.now())

>>> p.save()

>>> p.id
1

>>> p.question
"What's up?"
>>> p.pub_date
datetime.datetime(2007, 7, 15, 12, 00, 53)

>>> p.pub_date = datetime.datetime(2007, 4, 1, 0, 0)
>>> p.save()

>>> Poll.objects.all()
[<Poll: Poll object>]

>>> quit()


6.7 完成

7. 自动生成管理站点
7.1 加入 "django.contrib.admin" 到 INSTALLED_APPS.

7.2 同步数据库
> manage.py syncdb

7.3 编辑 mysite/urls.py


from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
# Example:
# (r'^mysite/', include('mysite.foo.urls')),

# Uncomment the admin/doc line below to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
)



7.4 访问Admin应用
[url]http://127.0.0.1:8000/admin/[/url]
用户名: 上面有配
密码: 上面有配

7.5 加入Polls应用
在E:\python_projects\mysite\polls目录创建admin.py

admin.py

from polls.models import Poll
from django.contrib import admin

admin.site.register(Poll)


7.6 重启服务器.
a) CTRL + C
b) > manage.py runserver

7.6 再次访问Admin. CRUD Poll.

7.7 中文配置
settings.py

TIME_ZONE = 'China/ShangHai'
LANGUAGE_CODE = 'zh-cn'

8. 创建视图
8.1 设计URLs

urls.py加入
(r'^polls/$', 'polls.views.index'),

8.2 配置模板目录
settings.py

TEMPLATE_DIRS = (
'E:/python_projects/mysite/template'
)

8.3 在E:/python_projects/mysite/template目录创建polls目录,新建index.html

index.html


{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}



8.4 重启服务器,访问
[url]http://127.0.0.1:8000/polls/[/url]

8.5 完成

9. 其它
高级表单处理
使用 RSS 框架
使用缓存框架
使用注释框架
管理员:权限管理
管理员:自定义JS
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值