Django创建简易博客

开发前的准备:
python版本:python-3.5.2
Django版本:Django-1.9.12

新建工程
使用命令:

E:\pyProject>django-admin.py startproject BlogC

manage.py —– Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py —- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py —– 负责把URL模式映射到应用程序。
创建一个应用
使用命令:

E:\pyProject\BlogC>python manage.py startapp easyblog

数据库模型
输入命令:

E:\pyProject\BlogC>python manage.py migrate

就会自动根据Django现有的模型建立起一套强大的CMS(这里与老版本不一样的内容是:老版本使用的是syncdb这个命令,而且老版本会自动创建用户)输入完命令后你就会看到新建了一个db.sqlite3的文件,这个就是你的数据库文件(当然你也可以用其他数据库)。这时一个CMS系统已经搭建起来了,
创建admin用户,输入命令:

E:\pyProject\BlogC>python manage.py createsuperuser

就会让你输入用户名,邮箱,密码。

SvenWengdeMacBook-Pro:BlogC svenweng$ python manage.py createsuperuser
Username (leave blank to use 'jo'): 
Email address: ****@hotmail.com
Password: 
Password (again): 
Superuser created successfully.

现在用这个用户就可以进入CMS系统了
在浏览器地址栏中输入 http://127.0.0.1:8000/admin 如下图:
这里写图片描述
点击按钮进入系统
这里写图片描述
定义博客的数据库模型
我们网站的CMS已经做好了,现在要定义我们自己的模型。打开文件位置:easyblog/models.py
这里写图片描述
编辑如下代码:
models.py

from django.db import models
from django.contrib import admin


class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    timestamp = models.DateTimeField()

admin.site.register(BlogPost)

上面的代码帮我们定义了一个简单的数据内容。现在我们要让数据库发生变化。执行以下命令

python manage.py makemigrations easyblog
python manage.py sqlmigrate easyblog 0001
python manage.py migrate

按顺序执行命令,就会把我们新增的models生成。这个时候进入CMS就可以看到多了一个group,在里面输入标题,内容和时间,保存即可。
这里写图片描述
这里写图片描述
视图
写完数据模型后,我们写视图函数,让我们的网站能够展示出来。
easyblog/views.py

from django.shortcuts import render
from easyblog.models import BlogPost


def index(request):
    blog_list = BlogPost.objects.all()
    return render(request, 'index.html', {'blog_list': blog_list})

ef index表示定义一个index的视图函数,BlogPost.objects.all()就表示我们刚刚定义的模型类BlogPost返回所有数据,我们在CMS插入的文章就会全部返回给blog_list。最后就是把视图函数处理的内容返回给模版index.html。
模版
在easyblog文件夹下创建templates文件夹
这里写图片描述
在模版文件templates中新建index.html。根据视图函数返回的数据,我们来编写这个index.html模版
templates/index.html

{% for blog in blog_list %}
    <h2>{{ blog.title }}</h2>
    <p>{{ blog.timestamp }}</p>
    <p>{{ blog.body }}</p>
{% endfor%}

视图函数最后的{‘blog_list’: blog_list}就表示把blog_list的内容赋值给‘blog_list’,所以在模版中我们要有‘blog_list’这个变量,用for来迭代,把数据全部打出来
地址
内容我们已经写好了,现在要通过一个地址定位到我们写的网站。在BlogC中已经有一个urls.py文件,这个文件就是把定位到我们网站的地址。
BlogC/urls.py
这里写图片描述

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^easyblog/', include('easyblog.urls')),
]
``

前面的代码就表示我们输入地址后带有easyblog的链接全部会跳转到easyblog/urls.py这个文件中,我们需要新建这个文件,然后输入下面的代码
easyblog/urls.py

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^$', views.index, name='index'),
]

这个就表示我们输入地址后带有easyblog的网址链接的视图。url的参数,第一个是一个名称适配的正则。这里表示为空,第二个参数就是视图函数的地址了,name表示视图函数的名称。
在BlogC/settings.py添加 ‘easyblog’, 如下图:
这里写图片描述
运行python manage.py runserver,进入127.0.0.1:8000/easyblog。就可以看到我们刚刚写的网站了。
这里写图片描述

优化界面
新建一个base.html模版,输入下列代码
templates/base.h

<html>
      <style type="text/css">
        body{color:#efd;background:#453;padding:0 5em;margin:0}
        h1{padding:2em 1em;background:#675;text-align: center}
        h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
        p{margin:1em 0}
      </style>

      <body>
        <h1>coco的blog</h1>
        <h3>精通各大语言的hello world!</h3>
        {% block content %}
        {% endblock %}
      </body>
</html>

我们之前的templates/index.html代码改为这样


{% extends "base.html" %}

{% block content %}
{% for blog in blog_list %}
    <h2>{{ blog.title }}</h2>
    <p>{{ blog.timestamp }}</p>
    <p>{{ blog.body }}</p>
{% endfor%}
{% endblock %}

好了,再次进入我们的网站看看。
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄齐才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值