您的位置:首页 > 编程语言 > Go语言

Django入门学习笔记(一) 单个model的保存

2010-09-24 22:49 567 查看
仅仅是一个笔记。。。

这篇文章主要是单个model的保存,即将单个实体信息插入数据

包括应用的创建,模型的创建,保存模型的写法,测试方法

参考文档当然是经典的The Django Book (http://djangobook.py3k.cn/)(10/10/28注:前面的链接暂时已经不能访问,请参见官方文档 http://docs.djangoproject.com/en/1.2/),建议使用firefox浏览,因为我在同事的机器上用360什么的浏览器浏览发现会有一些奇怪的问题。

Django安装什么的直接略去,有时间再补上

新建一个项目:

诸如我们是要在目录下开始干活建项目E:\simon\project\django

启动命令行提示窗口,直接去这个目录E:\simon\project\django>c:\Python25\Lib\site-packages\django\bin\django-admin.py startproject firstproject

我们创建了一个firstproject这样的django工程

当然你可能已经发现我已经将python的安装路径(c:\python25)已经加到系统环境变量PATH中.

在E:\simon\project\django路径下发现多了firstproject这个目录,结构如下:

E:\simon\project\django>tree firstproject /a /F

E:\SIMON\PROJECT\DJANGO\FIRSTPROJECT

manage.py

settings.py

urls.py

__init__.py

没有子文件夹

简单的介绍下相关文件,其实从其名字上可以看出个大概:settings.py文件中包含了这个工程的配置信息,你可以配置这个工程的数据库配置信息,你这个工程所包含的应用(app)(app是一个小于工程的概念,也就是一个工程可能或包含很多app,关于更详细更专业的解释在这里http://djangobook.py3k.cn/chapter05/ “你的第一个应用程序” 这一段落的开头有解释 )信息等等;manage.py包含了很多管理你这个工程的动作,诸如你新增了一个(或一些)数据模型(model),那么你可以manage.py syncdb这样来同步到数据库;urls.py简单点说,里面写上了url跟你的应用的匹配。

好吧,我们现在就开始在settings.py中写上关于该工程的数据库的相关配置信息,我用mysql做示例,数据库名称为df(意思为django first,其实这个不重要)

如果你不是用的mysql做数据库,可以参考http://djangobook.py3k.cn/chapter05/ 数据库配置 这一节

http://127.0.0.1:8000/ 
Quit the server with CTRL-BREAK.

用浏览器访问:http://127.0.0.1:8000/

 '>

服务器成功启动

在刚才的工程下新建一个app,假设名为books

去firstproject目录下

cd firstproject

manage.py startapp books

我们再看下刚才的firstproject目录发生了怎样的变化

E:\SIMON\PROJECT\DJANGO\FIRSTPROJECT

|   manage.py

|   settings.py

|   settings.pyc

|   urls.py

|   __init__.py

|   __init__.pyc

|

\---books

models.py

tests.py

views.py

__init__.py

创建数据模型,做过j2ee的人可能都知道,做web应用,最最基础的就是要创建POJO类,然后通过ORM的框架,如hibernate之类的(当然或者可以用JDBC直接封装Helper类去操作)进行CRUD等等。那么在Django中,我们就直接将数据模型写在models.py中。在http://djangobook.py3k.cn/chapter05/(10/10/28注:前面的链接暂时已经不能访问,请参见官方文档 http://docs.djangoproject.com/en/1.2/topics/db/models/ 参考quick example)这篇文档中介绍创建book相关的模型,在这里,“你的第一个模型”这一节。在moedls.py中填完代码。(注意:如果你用的是django 1, 2, 1以上版本,要将代码中的maxlength更换为max_length,否则后续同步到数据库会出现错误)

关于Django用到的Field类型在这里http://docs.djangoproject.com/en/dev/ref/models/fields/ Django官方有详细的文档

你不会没发现models.py在哪里吧,他在这里,就是刚才建的app books目录下面 J

当你的model数据模型建立完毕,你自然是想在数据库建立相应的表。想做到这一步需要两个步骤:

a)         在你的工程目录下的settings.py中的INSTALLED_APPS这个元祖中加上

‘firstproject.books’,

千万要记得写上末尾的逗号,否则你会恨惨… J

完成后像这样:

INSTALLED_APPS = (

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.sites',

'django.contrib.messages',

# Uncomment the next line to enable the admin:

# 'django.contrib.admin',

'firstproject.books',

)

b)        最好先运行python manage.py validate 这是用来验证你刚才写你的模型的语法和逻辑是否正确

c)        在你工程目录下(不是你的应用目录下)run这样的command, manage.py syncdb

这样的就能在数据库建立与你刚才所建的数据模型对应的几张表

慢,等一下,因为我们在模型中用到了headshot = models.ImageField(upload_to='/tmp')

所以要安装PIL库,在这里http://www.pythonware.com/products/pil/

model的创建工作我们已经做完,那么我们可以在python的交互式环境中可以做测试了,但是需要说明的是这个交互式环境不是像学python那会,直接c:\python25\python.exe启动,而是需要通过你的app所在目录下的manage.py去启动,

命令是这样的:python manage.py shell



写测试代码



去查询数据库



成功保存

当然也可以为Publisher这个model定义__str__()方法,这个方法的作用相当于java中的toString()方法



“为了让我们的修改生效,先退出Python Shell,然后再次运行 python manage.py shell 进入。 现在列出 Publisher 对象就很容易理解了:”

也就是重新启动cmd窗口,重新启shell



你要是未自己定义__str__()方法,就会得到像下面的这个结果



关于模型操作更详细的部分请看完 http://djangobook.py3k.cn/chapter05/ 文档。包括filter, __contains,delete,取部分结果集,排序等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: