zoukankan      html  css  js  c++  java
  • 实战Django:官方实例Part1

    【写在前面】

    撰写这个实战系列的Django文章,是很久之前就有的想法,问题是手头实例太少,一旦开讲,恐有“无米下锅”之忧。

    随着对Django学习的深入,渐渐有了些心得,把这些心得整理出来,以规范的、方便新人上手的撰写方式来写这个实战系列,相信对刚接触Django的童鞋会有一定的帮助。

    舍得这里所用到的版本,为Django 1.7.1,Python 3.2,想要按照舍得讲解的实例上手练习的话,请务必与舍得所用的版本保持一致。

    实例是在Windows系统下调试的,如果你采用的是非Windows系统,因操作系统不同所产生的差异,请自行设法调整。

    【Django与Python的安装】

    关于Django与Python的安装,请阅读官方文档。

    IDE推荐使用ERIC5.

    【关于本实例】

    此处的实例出自官方1.7.1版的文档,应该是官方文档中唯一完整的实例。舍得在整理这个实例的时候,并未按官方文档中的顺序逐一讲解,而是按照建站的逻辑一步步写下来,省略了其中个别的步骤与操作,比如”Playing with the API“,是讲在shell界面耍数据库的,感兴趣的童鞋可以自行查阅官方文档。

    原实例共分6个part,舍得在讲解的时候,会打乱原来的part结构,只是按照自己的逻辑来讲解。比如本文”Part1“,实际上已经介绍了官方文档”Part2“的部分内容了。对舍得这种处理方法介意的童鞋,可以直接跳过本文去阅读官方文档。

    1.创建项目


    Django 1.7.1版本安装好后,我们可在Python的Scripts下找到"django-admin.exe"这个程序,创建新项目时,请在dos命令提示符下转到Scripts文件夹(如“c:python32Scripts”),然后运行如下命令:

    $ django-admin startproject mysite

    注: $代表Dos提示符,不必输入(下同)。

    上面的命令执行完后,会在Scripts文件夹下多出一个叫mysite的文件夹,其结构为:

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py

    这些文档中,我们以后要频繁用到的是settings.py和urls.py这两个文档。每个文档各自代表的意思,可参阅官方文档。舍得的观点是,不用去管那么多,跟着这套“实战Django”系列的教程一个个实例做下去,你自然而然会知道每个文档的用途。

    2.创建应用


    关于项目与应用的区别,舍得简单讲下自己的理解。项目好比一个网站,应用只是网站的一部分,它是用来完成特定的某些功能的,比如一个网站可以分为“博客”、“论坛”、“文库”等应用。

    我们现在要来建立一个投票的应用,具体操作如下:

    在dos命令提示符下执行:

    cd mysite

    进入我们刚才建好的mysite文件夹,然后运行如下命令:

    $ python manage.py startapp polls

    注意,python的安装路径应该被添加到操作系统的环境变量中,如果上述命令无法运行,可以使用相对的路径,命令可调整为“....python manage.py startapp polls”,以下不再讨论此问题,请尽早将python加入系统环境变量。

    上面的命令执行完后,mysite的文件夹下会多出一个叫polls的文件夹,其结构为:

    polls/
        __init__.py
        admin.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py

    3.建立模型


    模型(models)是我们这个应用的数据源。在Django中,我们要做的是编辑好应用下面的models.py文件:

    编辑polls/models.py文件,象下面这样:

    polls/models.py:

    from django.db import models
    
    
    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')
    
    
    class Choice(models.Model):
        question = models.ForeignKey(Question)
        choice_text = models.CharField(max_length=200)
        votes = models.IntegerField(default=0)

    这里的两个class,相当于告诉数据库引擎,待会要给我建这两个表,第一个表叫Question,有两个字段;第二个表叫Choice,有三个字段。实际上在建立数据表的时候,数据库引擎会自动给每个表增加一个递增的ID字段。

    4.激活模型


    首先要修改mysite/settings.py这个文件,找到INSTALLED_APPS这段设置,把它改成下面这个样子:

    mysite/settings.py:

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'polls',
    )

    其实就是告诉程序,我要添加这个polls的应用!

    编辑settings.py这个文档的时候,顺便修改一下时区和语言的设置,找到:

    LANGUAGE_CODE = 'en-us'

    把它改为:

    LANGUAGE_CODE = 'zh-cn'

    找到:

    TIME_ZONE = 'UTC'

    把它改为:

    TIME_ZONE = 'CCT'

    注:CCT为中国北京时间的时区缩写。舍得建议在每一个项目中都进行时区和语言的设置的修改。

    然后在dos命令提示符下运行如下命令:

    $ python manage.py makemigrations polls

    你会看到象下面这样的执行结果:

    Migrations for 'polls':
      0001_initial.py:
        - Create model Question
        - Create model Choice
        - Add field question to choice

    继续在dos命令提示符下运行如下命令:

    $ python manage.py migrate

    你会看到象下面这样的执行结果:

    Operations to perform:
      Synchronize unmigrated apps: sessions, admin, messages, auth, staticfiles, contenttypes
      Apply all migrations: polls
    Synchronizing apps without migrations:
      Creating tables...
      Installing custom SQL...
      Installing indexes...
    Installed 0 object(s) from 0 fixture(s)
    Running migrations:
      Applying polls.0001_initial... OK

    记住makemigrations和migrate这两个命令吧,它是用来创建或修改数据库的,非常重要!

    5.创建管理员账号


    在dos命令提示符下运行如下命令:

    $ python manage.py createsuperuser

    输入一个用户名,建议输入:admin:

    Username: admin

    然后是输入管理员的邮箱,找一个你自己的邮箱输入进去就是:

    Email address: xxx@xxx.com

    接下来输入两次管理员的密码:

    Password: **********
    Password (again): *********
    Superuser created successfully.

    看到”Superuser created successfully“就大功告成了.

    通常每建一个项目都要做这一步”创建管理员账号“的操作,所以请牢记。

    6.启动服务器


    万事俱备,只欠东风,前面我们已经把网站的框架搭起来了,现在就把服务器启动起来,看看效果。

    在dos命令提示符下运行如下命令:

    $ python manage.py runserver

    命令执行后,你会看到类似这样的字符出现:

    December 06, 2014 - 00:30:53
    Django version 1.7.1, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.

    这就表示服务器已经成功启动了.

    注:runserver是非常重要的命令,但不需要刻意去记,在做实例的过程中,这可能会是你记得最牢的一个命令。

    好,打开浏览器,在地址栏内输入:

    http://127.0.0.1:8000/admin/

    你会看到如下的页面:

    1

    这是使用Django的一大福利,Django自带强大的管理后台。现在,就用你刚才建好的管理员账号登录吧!

    登录后的页面会是这个样子:

    2

    是不是除了用户和用户组管理,我们现在啥也做不了?不要着急,舍得会在下一部分教你如何往里面一点点添加内容。

    【未完待续】

  • 相关阅读:
    8、【C++基础】内存管理
    7、【C++基础】内联函数、友元函数
    5、【C++基础】强制类型转换
    4、【C++基础】引用和指针
    3、【C++基础】基本的输入输出
    2、【C++基础】命名空间
    1、【C++基础】bool数据类型
    13、【C语言基础】预处理器、头文件
    6、git常用命令总结
    5、git标签管理
  • 原文地址:https://www.cnblogs.com/emagic/p/django-1-part1.html
Copyright © 2011-2022 走看看