试玩儿Django(一)

自从接触python到现在也有段时间了,但是一直没有玩儿过Django,最近群里有些朋友经常会提问到django相关的一些东西,所以今天来试玩儿一下,没打算达到多么精通的地步(本身就是学着玩儿)。

简介

Django是一个开放源代码Web应用框架,由Python写成。采用了MVC软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时吉普赛爵士吉他手Django Reinhardt来命名的。

Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。

Django 于 2008年6月17日正式成立基金会。

安装

Django的安装方式有很多种,可以通过源码方式安装,也可以通过pip一类的包管理工具来进行安装,我是采用了pip方式安装,简单快速,当然你也可以采用源码方式安装,根据个人喜好来。这里多说两句,关于python模块的安装,请大家一定要参照官方文档上来,因为我经常会在群里见到有同学从来都不知道自己去搜索一下,就只知道问,诶,python的模块儿该怎么安装啊?这种问题,作为一个程序员,如果不知道自己去参考一下官方文档的话,那是很可耻的。
Django的源码在此:戳我去Django官网下载最新的Django 而且,Django官网上也说的很详细,安装步骤都有了:
tar xzvf Django-1.5.2.tar.gz
cd Django-1.5.2
sudo python setup.py install

同时官方也提到了,可以采用pip安装方式:
pip install Django==1.5.2

之后我们来验证下,是否成功安装。在python的交互模式(不知道什么是交互模式的面壁去)下,输入如下的命令:
>>>import django
>>>print(django.get_version())
1.5.2

因为我安装的是最新版的1.5.2,,所以能够成功打印出版本号,这表示成功安装了Django。那么,接下来,我们可以去试用Django了。

初步试用

新建项目

打开终端,在终端下输入如下命令:
django-admin.py startproject ericblog

然后我们使用ls命令就可以查看到在当前目录下创建一个ericblog文件夹,目录结构如下:
ericblog/
    manage.py
    ericblog/
        __init__.py
        settings.py
        urls.py
        wsgi.py

这些文件是:

  • 外层 ericblog/ 目录只是你项目的一个容器。对于 Django 来说该目录名并不重要; 你可以重命名为你喜欢的。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。 你可以在 django-admin.py and manage.py 中查看关于 manage.py 所有的细节。
  • 内层 ericblog/ 目录是你项目中的实际 Python 包。该目录名就是 Python 包名,通过它你可以导入它里面的任何东西。 (e.g. import mysite.settings).
  • ericblog/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。(如果你是 Python 新手,请查看官方文档了解 关于包的更多内容 。)
  • ericblog/settings.py: 该 Django 项目的设置/配置。请查看 Django settings 将会告诉你如何设置。
  • ericblog/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站“目录”。请查看 URL dispatcher 可以获取更多有关 URL 的信息。
  • ericblog/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。请查看 How to deploy with WSGI 获取更多细节。

接下来在终端中输入如下命令,以验证是否已经可以工作了:
python manage.py runserver

Django默认的端口号是8000,我们在地址栏里输入localhost:8000就可以直接访问了,如下图所示:


新建App

接下来我们创建一个app应用,命名为ericblog_app,同样在终端中输入如下命令:
python manage.py startapp ericblog_app
然后我们会看到生成了如下结构的一个目录:
ericblog_app/
    __init__.py
    models.py
    tests.py
    views.py
该目录包含了app的模型和视图。

配置数据库module

这里我们使用sqlite3,第一呢是因为这篇博客是在平板电脑上写的,sqlite3体积相对mysql等要小很多;第二呢,就是因为在Django中内置了sqlite3,不需要额外的数据库支持,第三呢,就是因为使用sqlite3还可以用django新建一个数据库,不需要使用已经存在的数据库。
我们可以通过修改ericblog_app下的models.py文件来添加新的数据库表,在models.py文件中添加如下代码:
class Reporter(models.Model):
    full_name = models.CharField(max_length=70)

    def __unicode__(self):
        return self.full_name

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter)

    def __unicode__(self):
        return self.headline
接下来我们编辑一下ericblog下的settings.py,配置下数据库相关的。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/home/gs/blog/datas/mydata.db',  # 这里是我数据库文件存放的目录,你应该替换成你自己的.
        'USER': '',                       # Not used with sqlite3.
        'PASSWORD': '',                   # Not used with sqlite3.
        'HOST': '',                       # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                       # Set to empty string for default. Not used with sqlite3.
    }
}
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:'django.contrib.admin',
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    'django.contrib.admindocs',  
    'ericblog_app',#这里添加的是我们的app的名字
)

那么我们可以看到在INSTALLED_APPS中,我们添加了新建的应用,即ericblog_app,接下来我们来创建数据库。通过在终端中输入如下命令来完成数据库的创建:

python manage.py syncdb

划红线的两个数据库表就是我们在models.py文件中创建的,我们可以看到执行的过程以及结果,这里需要说明的是,因为我们把settings.py文件中django.contrib.admin前面的注释去掉了,所以会创建admin表,那就需要为我们的blog指定一个用户,这里大家根据提示指定即可。

配置URL路径

经过了上述的几个步骤,我们还不能在浏览器中查看我们的应用,我们还需要配置一下url路径,那么我们来修改一下ericblog下的urls.py。
去掉以下代码前的注释:
from django.contrib import admin
admin.autodiscover()
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
注意去掉注释后导致的空格问题,python中缩进是语法的一部分,这个不需要我再说明了吧。

OK,做了上述修改之后,我们在浏览器中输入localhost:8000/admin/之后,就会看到登陆界面了,输入我们之前设置的admin的账户和密码,就可以进去了,至于接下来该如何配置我们的app呢,留到明天来做,今天的试用初步就到这里了。


阶段总结

通过今天的简单的试用,觉得Django学起来还是难度适中的,其实,只要你肯努力去学,都可以做的很好,在学习的过程中遇到问题一定要先思考,然后尝试自己去解决,再有就是通过搜索引擎找到问题所在也是不错的选择,最后才是占用别人的时间寻求别人的帮助,俗话不也常说呢么,靠人不如靠己。


2013年8月17日,Eric.Tang 记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值