• 写第一个Django app 笔记(安装配置)


    Writing your first Django app
    写第一个Django app 笔记

    这个笔记是很早以前写的,参考了很多django文献与官方文档,希望能够对观看者有所帮助!

    一、安装与配置
    1、下载安装Django,从官网上下载安装。
    2、解压缩Django,在shell下(cmd)进入Django文件夹
    3、运行python setup.py install,运行前必须确保python在环境变量中
    4、安装完毕后,把site-packages/django/bin目录设置到环境变量下面
    此时,django已经配置完毕

    二、创建project和app
    1、进入到一个目录,在shell下运行django-admin.py startproject mysite
     其中django-admin.py在上面设置的环境变量(django/bin目录)下,mysite为
     自己创建的project名称,此时django会为你创建mysite文件夹,该文件夹下
     面有以下几个文件:
      __init__.py   manage.py   settings.py   urls.py
      这四个文件分别用来表示工程,管理工程,配置Django运行,url的解析

    2、shell下进入mysite目录,运行manage.py runserver,会给出一些提示,按
     下ctrl-c(windows下)结束server运行

    3、打开浏览器,输入http://127.0.0.1:8000后,会出现Django的一些提示:
     It worked!
     Congratulations on your first Django-powered page.
     如果没有出现,则出错,默认下端口号为8000,下面方法可以修改端口号:
     manage.py runserver port
     
     教程中给出了一个重要警告:不要把这个manage.py作为服务器发布!!

    4、使用manage.py startapp appname 命令创建app,在文件夹下面会创建
       一个文件夹,包含下面文件:
       __init__.py  models.py, views.py
       __init__.py为空文件,表示该目录下的文件是一个整体模块
       models.py文件中定义各类数据表格类
       views.py还不清楚

    5、models文件中定义的类为数据库中的表格(表格的名称由小写字符的app名
       称+ _ +小写字符的类名构成),这个数据库需要在settings.py中进行设置,
       以大写DATABASE开头,设置引擎,数据库名称,端口号,主机地址,以及数据
       库登陆的用户名和密码models.py文件中定义的类以models.Model为父类进行处
       理。
       表格中的每一个column都必须用*Field来定义,具体有:
        CharField(maxlength=50)  TextField()
        IntegerField    DateTimeField()
        ForeignKey()(用来关联两个表格)
         
    6、编写完models的代码后,类结构并不能够进入到数据库表格中,在settings.py
       中设置INSTALLED_APPS,增加安装的app,然后运行下面的方法:
       manage.py syncdb
       此时,syncdb会依据INSTALLED_APPS中的配置,进行类搜索,为没有创建表格的
       类创建数据库表格,在创建完表格后,会提示你创建superuser,这个superuser是
       Django的superuser,非系统(Linux下的root权限,windows下的administrator权限)
       的superuser,之后你就可以用admin登陆网页了。
       注:syncdb可能使用UPDATE更新数据库表格,也可能使用INSERT插入表格,依据所写代
       码确定

    7、当然直接以admin登陆还是有些问题,需要做三件事:
       a. 修改settings.py文件,在INSTALLED_APP中增加'django.contrib.admin',
       b. 运行manage.py syncdb,创建数据库文件,增加django_admin_log数据库表格
       c. 在urls.py中把# Uncomment this for admin:下面一行的注释符号去除
       此后在浏览器中输入htpp://127.0.0.1:8000(端口号依据运行情况),即可出
       现登陆界面

    8、为了能够控制和修改models.py文件中的类中定义子类Admin,这样superuser可以
       登陆到系统中后就可以为这个类的实例添加和删除等操作了。
      
    9、在控制台进行操作的话,以manage.py shell方式登陆python,这种方式可以为python
       增加DJANGO_SETTING_MODULES环境变量,并增加project.app(用具体的project名称和
       app名称代替)到环境变量中,用from...import语句载入相关模块类,就可以对该模块进行
       操作了。
      
       获取所有对象:Poll.objects.all()
       对象过滤(查询): Poll.objects.filter(question__startswith('What'))
                                           #question表示类中的数据成员
       依据参数获取对象:Poll.objects.get(pub_date__year=2005)
                         Poll.objects.get(id=1) <===> Poll.objects.get(pk=1)                 
       返回的对象存储后,可以使用对象所在类的method --> p = Poll.objects.get(id=1)
        c = p.choice_set.create(choice='Not much',votes=0) # 注意写法
       进入到关联的对象: c.poll
                         p.choice_set.all() # 进入关联获取choice的所有对象
                         p.choice_set.count() # 进入关联,获取choice的所有对象个数
       删除其中的一个choice: c = p.choice_set.filter(choice__startswith='Just hacking')
                              c.delete()                                           
      
     
    10、控制台模块管理,用该类定义一个实例,返回的类实例可以直接访问数据元素,也可以直接
       修改,通过save()方法才把修改的内容保存到数据库中。数据库表格中有一个自动增加的
       id变量(由数据库控制),django通过id或者pk获取(primary-key)
      
    注意:每一次在models中修改完一个类时,需要重新运行syncdb进行数据库更新,之后在运行
       runserver,此时刷新浏览器页面,可以得到正确的结果,否则由于models中的类与数据库
       中有差别,将导致运行错误。
       
      


       

    /*
    *
    * Copyright (c) 2011 Ubunoon.
    * All rights reserved.
    *
    * email: netubu#gmail.com replace '#' to '@'
    * http://www.cnblogs.com/ubunoon
    * 欢迎来邮件定制各类验证码识别,条码识别,图像处理等软件
    * 推荐不错的珍珠饰品,欢迎订购 * 宜臣珍珠(淡水好珍珠) */
  • 相关阅读:
    【STL】各容器成员对比表
    windows笔记页文件支持的内存映射文件
    windows笔记【内核对象线程同步】线程同步对象速查表
    windows笔记虚拟内存
    windows笔记使用内存映射文件在进程之间共享数据
    svn个人服务端
    解决安装Visual Studio .NET 2003 时FrontPage 2000 WEB 扩展客户端 安装失败
    vc6.0转vs2008连接错误
    Sublime Text插件推荐
    末日了,说出你的梦想、愿望还有遗憾吧。
  • 原文地址:https://www.cnblogs.com/ubunoon/p/PythonDjangoInstall.html
Copyright © 2020-2023  润新知