在没看diango之前,就听说用这个框架来搭建blog是分分钟的事,耳听不如眼见,眼见不如操练,所以今天我们就详细讲解如何完成一个简单的blog搭建,如果有跟着一起练习的兄弟,请在自己电脑准备好环境:
1、提前安装好pyhont2.7
2、安装django1.6(这个很重要,因为django不同版本有些差别,尤其到1.7以上后,为保证做的过程少点艰难,请尽可能版本一致,另外现在很多网上的资料给的答案或解决方案,很多都不注明自己的版本,出问题参考的时候根本用不上,很多还是要自己去琢磨或上官网看资料)
3、找一个自己顺手的IDE开发软件
4、将python添加到系统环境变量(确保在cmd窗口可以直接执行python脚本)。
准备好上面的环境,我们就开始真是进入我们操作环节,不过在为了给小白们足够的信心,我们先看下我们最完后的blog长什么样,看图:
因为是简单的blog程序,所以界面也比较简单,我没用现成的blog模板来做,自己写的一个简单主页面,现在环境准备好了,最终要达成的结果也看到了,我想很多小伙伴们已经受不了,让我们挽起袖子开干吧。
首先创建项目和blog应用:
在cmd命令行下,输入:
1 |
django-admin.py startproject myblog |
然后进入myblog目录,命令行下输入:
1 |
python manage.py startapp blog |
这是你的myblog下有两个目录,一个是myblog,目录下有文件:__init__.py,settings.py, urls.py,wsgi.py, 一个是blog,目录下有如下文件:__init__.py,admin.py,models.py,tests.py,views.py,这些都是django自动为我们生成的,后续这些文件我们基本都会用得到,现在我们先不理会这些,用到了我们自然就会知道具体他们什么用途,现在重要的是要告诉django这个应用(app)这是我们项目的一部分,我们编辑settings.py文件,把INSTALLED_APPS里边内容修改成像如下内容一样:
1 2 3 4 5 6 7 8 9 |
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ) |
好,经过以上步骤我们就把整个项目搭建起来了,下面我要进入代码部分了,其实也很简单,我们先设计我们的数据模型(Model),因为这是最基础的,发表的文章要存储起来,打开blog目录下的models.py文件,最后保存的内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from django.db import models from django.contrib import admin # Create your models here. class BlogPost(models.Model): title = models.CharField(max_length=150) body = models.TextField() timestamp = models.DateTimeField() class Meta: ordering = ('-timestamp',) class BlogPostAdmin(admin.ModelAdmin): list_display = ('title', 'timestamp') |
这样就完了,我们一共就写了三个字段内容,文章标题,文章内容和发布时间,接下来我们要建立数据库表了,在这里我说下,django默认就支持sqlite3数据,所以,如果你采用的sqlite3数据库,你什么都不用修改,如果你采用的mysql数据库,就要设置settings.py文件里的数据库引擎,数据库名称,主机,用户,密码,这里为了简单,我用默认django的sqlite3数据库,我什么也不用设置。
再说一次,如果你用的 sqlite3数据库,请运行如下命令,建立数据库表(命令行):
1 |
python manaage.py syncdb |
运行后你会看到django创建表的输出,运行syncdb这个命令意思是django会查找INSTALLED_APPS里的每个models.py文件,然后为每个model创建一张数据表,到最后你会被问些问题(很抱歉,具体输出信息这段我没能保存下来,只能描述了),不过话说回来,提示的因为也非常简单,所有单词都没超初中英语单词水平:
第一个问题是问是否创建一个超级用户,敲yes
然后输入用户名
然后是邮件
最后是密码
然后就结束了
建立完数据库,我们注册我们的models,打开blog下的admin.py,输入:
1 2 3 4 5 |
from django.contrib import admin from blog.models import BlogPost,BlogPostAdmin # Register your models here. admin.site.register(BlogPost, BlogPostAdmin) |
最后在访问这前,我们设置访问的url,设置myblog/的urls.py,保存如下:
1 2 3 4 5 6 7 8 |
from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: url(r'^admin/', include(admin.site.urls)), ) |
好了,启动项目,在命令行下输入:
1 |
python manage.py runserver |
然后可以打开我们页面看看了,在地址栏输入:
1 |
http://127.0.0.1:8000/admin/ |
进入登录界面,输入刚才的用户和密码,就可以看到界面如下
其中blog是我们的应用,点击进去可以添加文章,好了,今天我们就先到这里,总结下我们今天学习了什么:
1、创建django项目和应用
2、创建Model,建立数据库表
3、设置settings文件,包含blog
4、设置urls文件,确定访问网站的url
5、注册我们的app,集成django-admin
6、访问我们的后台,添加文章
以上希望大家多练习,下一篇我们将讲解模板,视图以及分页实现。