zoukankan      html  css  js  c++  java
  • Django入门学习笔记(一) 单个model的保存

    仅仅是一个笔记。。。

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

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

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

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

    1.  新建一个项目:

    诸如我们是要在目录下开始干活建项目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/ 数据库配置 这一节

    DATABASES = {

    'default': {

    'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.

    'NAME': 'df', # Or path to database file if using sqlite3.

    'USER': 'root', # Not used with sqlite3.

    'PASSWORD': '123456', # Not used with sqlite3.

    'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.

    'PORT': '3306', # Set to empty string for default. Not used with sqlite3.

    }

    }


    1.启动开发服务器:

    去firstproject目录下,运行 manage.py runserver

    会得到这样的提示

    Validating models...

    0 errors found.

    Django version 0.96.2, using settings 'mysite.settings'

    Development server is running at http://127.0.0.1:8000/

    Quit the server with CTRL-BREAK.

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

     

    服务器成功启动

    1. 在刚才的工程下新建一个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

    1. 创建数据模型,做过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

    1. 当你的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/

    1.   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__()方法,就会得到像下面的这个结果

     

    1.   关于模型操作更详细的部分请看完 http://djangobook.py3k.cn/chapter05/ 文档。包括filter, __contains,delete,取部分结果集,排序等等
  • 相关阅读:
    androidstudio配置模拟器路径
    Linux常见命令
    逆向助手使用
    Git服务器回滚到固定版本
    Git使用
    使用本地Gradle版本
    系统模拟器创建
    AndroidStudio设置代理
    关联、参数化、思考时间、检查点、事务的设置方式
    SQL:内连接、左外连接、右外连接、全连接、交叉连接区别
  • 原文地址:https://www.cnblogs.com/simoncook/p/1834187.html
Copyright © 2011-2022 走看看