python下搭建最简单的django框架实例

写惯了java代码,最近想着学门新的语言玩玩,恰好有朋友是学python,于是也想着学学python玩下,python里有个web框架django,这两天也试了一下
发现也挺不错的,把自己搭建django的经历分享下,给新手们一个参考,哈哈


运行环境
Windows 7(64位) + Python 2.7 + Django 1.7.1
1.安装django框架
当然你首先要有python环境,对于学python的朋友们这个就不多说了~~
我使用的是setuptools工具来安装的,setuptools是python中安装第三方模块常用的安装工具
1.1安装setuptools工具(如果会安装的可以直接跳过)
先从这个地址下载ez_setup.py:
https://pypi.python.org/pypi/setuptools#windows(在页面最下面)
我下载的是setuptools-7.0.zip,将其解压,将解压的setuptools-7.0文件放到一个目录,我这里假定将其放到C:\workspace目录下
打开命令行cmd,在cmd中切换到C:\workspace\setuptools-7.0,即setuptools-7.0安装目录
运行命令:
python ez_setup.py
该命令会安装setuptools工具,安装后打开你的python安装目录下的Scripts目录(我的是C:\Python27\Scripts),会看到easy_install.exe等文件
注意将python安装目录下的Scripts目录(我的是C:\Python27\Scripts)添加到环境变量path,否则下面的easy_install命令会报错
1.2安装django框架
在cmd中输入:
easy_install django
有的安装过程可能会提示缺少vc++包,根据提示网址(我忘了~)下载包,我下载的是VCForPython27.msi,安装vc++后再执行安装
这样就自动安装了django,是不是很方便,哈哈


2.创建django项目,这里假定在c:\workspace\djangoTest下创建(和java有点差别,java是直接创建项目就可以了,python是要先创建项目再在项目里创建app)
进入c:\workspace\djangoTest目录,输入:
django-admin startproject mytodo       #网上很多是python django-admin.py startproject mytodo,版本不一样可能命令有细微差别
就创建了mytodo项目


3.启动调试服务器
进入c:\workspace\djangoTest\djangoTest\mytodo目录:
cd mytodo
然后输入:
python manage.py runserver
在浏览器中输入http://127.0.0.1:8000/,看能否访问页面


4.创建app
输入命令:python manage.py startapp todo
就在mytodo项目下创建了一个app,即todo
编辑mytodo/settings.py文件,在INSTALLED_APPS添加条目todo
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'todo',
)
即在最后添加一行todo(有的版本是项目名+app名,即mytodo.todo)
再次输入:python manage.py runserver看看你app是否配置好了,养成边写边测试的好习惯,哈哈~


5.配置数据库
django默认的是使用SQLite数据库作为后台数据库,仍然打开mytodo/settings.py,可以看到下面一段:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
这就是django项目的数据库配置,默认是使用SQLite,我们就使用使用默认配置,安装SQLite数据库,不需要修改配置文件
听到又要安装数据库,大家肯定又觉得好复杂,其实在python里安装三方模块,数据库什么的很简单,一条命令就可以搞定了~~
输入命令:
easy_install pysqlite
这样就安装了SQLite数据库
安装完数据库,我们也测试一下,输入命令:
python manage.py syncdb
出现successfully提示就安装成功了,打开mytodo目录,看看里面是否有一个db.sqlite3文件,这就是上面配置的数据库文件
说到这里,提示一下我们的命令都是在cmd命令行中输入的,不是在python交互式环境python shell里面输入的,大家注意了~~


上面都是配置各种环境,下面就是正式的编写代码(当然也有配置),写之前先说明一下,django里面也是MVC模式,只是和java里面的
不太一样,MVC里面的C(即controller)在django里面不叫controller,而是view,这点需要大家注意,另外django实现了ORM框架,我们不需要自己写操
作数据库的代码,调用django提供的Model层的方法就可以了
我们的流程也很简单,就是用户输入一个地址,提交到控制器view的index方法,index方法调用模型层Model处理,得到结果,再跳转到index页面显示结果
就是一个最简单的流程,大家应该都了解吧,哈哈~~


6.配置Model层
在todo/models.py文件中添加类TodoEntry:
class TodoEntry(models.Model):
     task = models.CharField(max_length=120)
     status = models.IntegerField()
     create_date = models.DateTimeField('create date')


     def __unicode__(self):
          return self.task

然后运行以下命令:
python manage.py makemigrations todo  #(命令前面要加python,有的版本不用加python)
该命令会在todo/migrations目录下生成提交脚本,打开todo/migrations目录,看看是否有一个0001_initial.py的文件,就是刚刚生成的
python manage.py sqlmigrate todo 0001   #该命令可以查看刚刚的脚本的sql语句,可以不执行
python manage.py migrate 
该命令会正真操作数据库,即在数据库中生成了对应的表


7.配置view层(controller)
编辑todo/views.py文件,实现index函数:
# 'todo.views.index' 

def index(request):
    all_todo_list = TodoEntry.objects.all().order_by('-create_date')


    return render_to_response('todo/index.html', {'all_todo_list' : all_todo_list}, context_instance = RequestContext(request))
    
该函数意思是将TodoEntry表中的记录全部取出来显示到todo/index.html页面,在函数中用到了TodoEntry类,还用到了两个变量render_to_response,RequestContext
所以这里我们要导入对应的变量,在todo/views.py文件开头加入以下代码,导入模块变量
from models import TodoEntry
from django.shortcuts import render_to_response,RequestContext


8.配置url
编辑mytodo/url.py 中的 urlpatterns,添加以下配置:
url(r'^todo/$', 'todo.views.index')
该配置的意思是当在浏览器中输入http://127.0.0.1:8000/todo时(即APP根目录时),将跳到view层(即views.py)中的index函数处理


9.配置模板
首先在todo目录下新建一个页面index.html,输入以下代码:
{% if all_todo_list %}
    {% for entry in all_todo_list %}
        <p> {{ entry.task }}
             <a href="/todo/del/{{ entry.id }}/"> delete </a>
        </p>
    {% endfor %}
{% else %}
    <p>No todo entry are available.</p>
{% endif %}

然后编辑mytodo/settings.py 文件,添加以下配置:
TEMPLATE_DIRS = [os.path.join(BASE_DIR],即todo目录下的页面都会被渲染

大家也可以在todo下新建一个templates目录,将index.html放到templates目录下,那就如下配置:
TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
意思是在todo/templates(根目录即是todo)目录中的页面都会被渲染


10.测试
打开浏览器,在地址栏输入:http://127.0.0.1:8000/todo,如果页面正常,就说明成功了

在自己搭建django环境时,参考了某位大牛的博客http://www.cnblogs.com/weichsel/archive/2012/10/15/2724108.html,大牛的博客更加精炼
大家也可以直接按照大牛的博客来操作~~



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值