zoukankan      html  css  js  c++  java
  • 实战Django:Rango Part1

    在前面我们已经陆续学习了六个Django的实例,其中一个来自Django官方的文档,另外五个来自《Django Web开发指南》。舍得介绍的每一个实例,都是按照官方文档的标准,力求让大家在根据文章去做自己的实例时,能够按“文”索骥,轻松再现整个实例的制作过程。

    接下来,舍得要介绍一个大型的实例,这个项目叫做Rango,它来自Django圈内口碑甚佳的《How to Tango with Django》一书。事实上,此书就是围绕Rango这一个实例来展开的,而且,作者在介绍实例的时候,尽可能按照官方实例的标准来介绍整个制作过程,对学习者帮助甚大。这个实例已被收入到官方的实例库中(见https://code.djangoproject.com/wiki/Tutorials)。

    《How to Tango with Django》并没有正式出版,而是以在线文档的方式来分享,大家可以从这里阅读到这本书的内容:http://www.tangowithdjango.com/book/(这是适用于Django 1.5.4版的,Django 1.7版的可以看这里:http://www.tangowithdjango.com/book17/)。

    由于市面上并无该书的PDF或Epub格式下载,舍得从作者的网站上抓取了html文件,重新整理了版面,将其制作成epub的格式电子书,解决因受网速影响而导致阅读不畅的问题。有兴趣的童鞋可以从这里下载:舍得学苑下载中心(此链接为1.7版电子书,据了解,该版本目前尚未正式完成,即仍处于草稿状态,介意的童鞋可下载1.5.4版)

    《How to Tango with Django》中的实例显然要比舍得之前分享的六个实例要大得多,但是,不要被它的“大”吓到,它仍然只是一个适合初学者入门的实例。童鞋们可以通过这个实例,复习之前学过的内容,此外,还可以学到一些新的技巧,比如用户登录,Bootstrap,以及更实用的Ajax应用等等。

    注意,本实例所用的Django版本为1.7.1,Python版本为3.2,操作系统为Win8。

    1.创建项目和应用


    我们先来创建本实例的项目,在dos命令提示符下转到Scripts文件夹(如“c:python32Scripts”),然后运行如下命令:

    $ django-admin startproject rangoproject

    然后在dos命令提示符下继续输入如下命令,进入项目文件夹:

    cd rangoproject

    接下来开始创建应用,在dos命令提示符下输入命令:

    $ python manage.py startapp rango

    命令执行完后,项目根文件夹下会出现一个叫rango的文件夹,应用创建完毕。

    关于项目根文件夹:

    当你创建好项目时,你会发现其文件夹的结构会是下面这样:

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

    这里有两个rangoproject文件夹,我们把上面一个叫做项目根文件夹,下面一个(和manage.py并列的)叫做项目配置文件夹。

    2.建立模型


    编辑rango/models.py文件,改成下面这样:

    rango/models.py:

    from django.db import models
    
    class Category(models.Model):
        name = models.CharField(max_length=128, unique=True)
    
        def __str__(self):
            return self.name
    
    class Page(models.Model):
        category = models.ForeignKey(Category)
        title = models.CharField(max_length=128)
        url = models.URLField()
        views = models.IntegerField(default=0)
    
        def __str__(self):
            return self.title
    3.激活模型

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

    rangoproject/settings.py:

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

    编辑settings.py的时候,建议顺便修改一下语言和时区的设置,具体的方法请参考:《实战Django:官方实例Part1》

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

    $ python manage.py makemigrations rango

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

    $ python manage.py migrate

    这样,数据库就建好了。我们在实例中(包括之前的六个实例)使用的是Django默认的Sqlite3数据库,数据库文件为db.sqlite3,存放在项目根文件夹下,这同样是默认的设置,你可以在settings.py的DATABASES设置中看到。

    4.创建管理员账号

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

    $ python manage.py createsuperuser

    然后依次输入admin,你的邮箱,输入两次密码,完成创建管理员的操作。

    5.在管理界面注册应用

    编辑rango/admin.py 文件,让它变成下面这个样子:

    rango/admin.py

    from django.contrib import admin
    
    from rango.models import Category, Page
    
    class PageAdmin(admin.ModelAdmin):
        list_display = ('title', 'category', 'url')
        
    admin.site.register(Category)
    admin.site.register(Page, PageAdmin)

    6.启动服务器


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

    $ python manage.py runserver
    服务器启动成功后,打开浏览器,在地址栏内输入:
    http://127.0.0.1:8000/admin/

    然后输入你刚才创建的管理员账号和密码,登录管理界面,你可以先尝试添加一些东西,或者,什么都不做。

    7.模板和静态文件配置

    编辑rangoproject/settings.py这个文件,在文件末加入以下内容:

    rangoproject/settings.py:

    STATIC_PATH = os.path.join(BASE_DIR, 'static')
    STATICFILES_DIRS = (
        STATIC_PATH,
    )
    TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')
    TEMPLATE_DIRS = (
        TEMPLATE_PATH,
    )
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

    其中,STATIC_PATH主要用来存放CSS、JS及图片文件,TEMPLATE_PATH用来存放模板文件(项目中所有的模板文件都放在这里,便于管理),MEDIA_ROOT则是用来存放用户上传的图片之类文件。

    下面,我们一一创建上面讲到的文件夹,在项目根文件夹下:

    • 创建static文件夹
    • 创建templates文件夹
    • 创建media文件夹

    然后在static文件夹下:

    • 创建img文件夹
    • 创建js文件夹
    • 创建css文件夹

    我们来测试一下静态文件的配置,找一张jpg格式的文件,将其命名为rango.jpg(或直接下载这张图片:http://www.tangowithdjango.com/static/rango.jpg),把它放到static/img文件夹下,它的正确路径应该是:

    rangoproject/static/img/rango.jpg

    在浏览器地址栏内输入:

    如果你能看到图片,说明静态文件配置成功了.

    8.练习

    1.更新“Category”模型,加入以下两个属性:views和likes,默认值均为0。

    2.更新数据库。

    3.学习“官方实例Part2”,如果你之前还没看过的话。

    提示:

    • views和likes的字段类型均为“IntegerField”。
    • 更新数据库用makemigrations和migrate命令。

    【未完待续】

    本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
    作者:舍得
    首发:舍得学苑@博客园

     
  • 相关阅读:
    【技术分享】sphinx的--rotate运行机制
    【技术分享】JQuery Mobile转场分析
    【游戏小心得】火焰纹章的核心精髓
    【新手向】键盘常用 ASCII 码
    【基础知识】进程与线程的区别
    【巧知识】js ==与===区别(两个等号与三个等号)
    python: HTML之 鼠标放上去下拉项字体显示不同颜色
    python:页面布局 后台管理页面之常用布局
    python :页面布局 ,后台管理页面之左侧菜单跟着滚动条动
    python : HTML+CSS (左侧菜单)
  • 原文地址:https://www.cnblogs.com/emagic/p/4162899.html
Copyright © 2011-2022 走看看