一直想学Django,但是看到教程就头疼,因为学习基础知识总是最痛苦的,但是基础又是必须的!所以一般遇到这种情况我都不可能一次把基础学完,总是要学一次,然后放弃,然后过段时间又学一次,放弃......嗯,当我学完(放弃)了几次之后,也差不多把基础知识学完了,接下来就愉快的实战吧!
学习Django也是一样的(尿性),之前想学Django或者Tornado,但是学到有关html代码的时候就萎了,,这尼玛受不了;学习-放弃几次之后觉得也差不多了,于是就来实战吧!当然实战也是在看别人的教程,照着写代码!
这里的代码基本是照搬《Django WEB开发指南》第二章“Django速成:构建一个Blog”,但是也有一些地方觉得书上的代码不妥,自己改了一点~ok,下面就开始搭建部落客吧!
注意!!这不是一个教程!!教程会把细节给你解释清楚,但是我不也不太懂细节,我也不会去解释,所以这个基本上是我的学习流水账!!
安装Django就不去详述了,可以使用pip安装。而我一般都是直接安装Anaconda,因为这个软件包含了大多数常用的库,比如numpy scipy django等,而无需去一个一个安装,可以节省大量的时间。
Anaconda地址:https://www.continuum.io/downloads
安装了anaconda之后,那么就开始创建项目。
首先切换到目标目录。终端(windows是cmd)输入:
django-admin startproject mysite
mysite是我给项目取得名字。创建了项目之后目录是这样的:
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
创建了一个项目之后我们把终端切换目录到mysite,注意是上面加粗的mysite。
cd mysite
切换目录之后创建app,输入
python manage.py startapp blog
blog是app名字。
创建了app之后需要打开 mysite/settings.py ,在INSTALLED_APPS添加一行 “ ‘blog’, ”(双引号里面的内容,逗号不要忽略),如图所示:
这里我们定义blog数据结构部分,打开blog/models.py,添加代码:
from django.db import models
class BlogPost(models.Model):
title=models.CharField(max_length=150)
body=models.TextField()
timestamp=models.DateTimeField()
如图:
嗯!我们使用sqlite3,毕竟只是学习,不是实战,只是用于本地调试的话,sqlite3足够了。终端输入:
python manege.py syncdb
这样就会在mysite目录下创建一个db.sqlite3文件,用于储存。上面的命令会根据INSTALL_APPS创建表。第一次同步数据库会让你创建superuser,输入yes,然后输入用户名/邮箱/密码/确认密码。
输出:
再输入:
python manage.py makemigrations
因为上面第一个命令没有创建blog_BlogPost表,而这个表是用于储存文章的,如果没有这个表就无法储存文章,所以还需要这第二个命令创建blog_BlogPost表。
修改models/models.py为:
到了这里,blog的后台已经基本搭建完毕!我们在终端输入:
python manage.py runserver
然后在浏览器打开http://127.0.0.1:8000/admin就可以登陆访问后台了!
登陆后是这样的:
我们在blog目录下创建一个名为templates的目录,用于存储html模板。
在templates目录下创建一个html,取名archive.html,名字随意,输入:
{% for post in posts %}
{{ post.title }}
{{ post.timestamp }}
{{ post.body }}
{% endfor %}
根据代码的意思,就是显示全部的文章。
打开blog/views.py输入:
from django.shortcuts import render
from blog.models import BlogPost
# Create your views here.
def archive(request):
posts=BlogPost.objects.all()
return render(request,'archive.html',{'posts':posts})
如图:
打开mysite/urls.py输入:
from django.conf.urls import include, url,patterns
from django.contrib import admin
urlpatterns = patterns('',
url(r'^$','blog.views.archive',name='archive'),
url(r'^admin/', include(admin.site.urls)),
)
如图:
到了这里,那么博客基本上搭建完毕。到了http://127.0.0.1:8000查看:
(⊙v⊙)嗯......朴实简单......好了,就到这里吧。