使用现有的H5模版写网站

前提

我们应该把精力放在写Python上,而不是写前端的样式,所以我比较喜欢的就是拿一个模版来改一改,就可以获得一个漂亮的界面,否则,你需要好好的了解了解html和css相关的知识。

版本相关


操作系统:Mac OS X EI Caption
Python版本:3.4
Django版本:1.9
IDE:PyCharm


模版下载

网络上应该有很多很多的模版可以下载,可以直接找Django的源码下载,不过我是不太推荐这样,因为下下来的东西你不知道要如何实现它。对于学习Django来说没有什么好处,本次演示的模版下载地址:黑色质感时间轴html5个人博客模板我个人比较喜欢这种黑色系的风格。

放入Django

我目前的目录结构是这样的

|-MyBlog
 |---__pycache__
 |-grzx
 |---__pycache__
 |---migrations
 |-----__pycache__
 |---templates
 |-static
 |---css
 |---images
 |-----index_img
 |-----music_img
 |---js

很简单,把所有的.html文件放到templates文件夹下,所有的css、js和img文件全部放在static文件中,Django读取静态文件就是从static文件夹中加载。详细的配置实在setting.py中,有兴趣的可以看看Django的官方中文文档。

数据库系统

数据库目前我弄了两个简单的表来处理数据


About Me
网名:Sven Weng | 点点寒彬
职业:测试工程师
公司:XXX
Email:XXX


这部分在model里面,用一个表来处理这部分数据,记录这个主要是为了以后拓展使用

models.py

class UserInfo(models.Model):
    nickname = models.CharField(max_length=20)
    work = models.CharField(max_length=20)
    company = models.CharField(max_length=50)
    email = models.CharField(max_length=20)

主体部分我们可以看到有一段一段的文章,元素有:标题、图片、部分内容、时间、(喜欢和评论)还有一个没显示的作者。所以数据库这样写。

models.py

class BlogBody(models.Model):
    blog_title = models.CharField(max_length=50)
    blog_body = models.TextField()
    blog_type = models.CharField(max_length=50)
    blog_timestamp = models.DateTimeField()
    blog_imgurl = models.CharField(max_length=50, null=True)
    blog_author = models.CharField(max_length=20)

null=True表示这个字段允许空。这两个表内容写好后生成数据库。1.9生成数据库的方式和之前不一样,不了解的可以看看《Django1.9快速写简单的博客》,数据库结构生成之后,进入admin手工插入文章内容。

视图函数

视图函数中我们需要返回给index.html两个数据库的信息,一个是UserInfo中的我的个人信息,另外一个是文章的信息,代码如下:

views.py

from django.shortcuts import render
from .models import UserInfo, BlogBody


def index(request):
    userinfo = UserInfo.objects.first()
    blog_body = BlogBody.objects.all()[:6]
    return render(request,
                  'index.html',
                  {'userinfo': userinfo, 'blog_body': blog_body})

userinfo = UserInfo.objects.first()这句表示返回UserInfo数据库中的第一条信息(其实也只有自己插入的一条信息)
blog_body = BlogBody.objects.all()[:6]这句表示返回BlogBody中的前6条数据。(首页视图有限,只能展示其中的一些)
更多的数据库操作方式请查看《执行查询》

地址配置

我们需要给视图函数配置一个地址。按照《Django1.9快速写简单的博客》把地址链接到自己应用的urls。

app/urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    ]

加上这句url后,我们进入127.0.0.1:8000/app/就可以看到我们调用的index.html

模版修改

模版文件中有index.html list.html view.html这些页面使用的都是同一个头部和脚部。所以把这部分内容单独抓出来写一个base.html文件,所有页面都继承这个就行了。在头部和脚部中间加上

{% block bodycontent %}
{% endblock bodycontent %}

这一段,内容就是可以自定义的内容,index.html中只要输入

{% extends "base.html" %}#继承base.html

{% block bodycontent %}
#index的中间内容
{% endblock bodycontent %}

这样,头部和尾部就是统一样式了。现在需要修改index的内容。

思路

首先,首页中多篇文章的显示方式是相同的,也就是说我们可以使用一个for循环来生成多个数据。其次,我们需要把每一篇文章的数据用数据库的内容来填充,最后,点击标题后可以跳转到文章详细内容(后续再谈)

实现

实现的过程中,只要填充内容就行,不要修改html中的相关样式参数

index.html

...
    <div class="card">
        <h1>About Me</h1>
        <p>网名:{{ userinfo.nickname }}</p>
        <p>职业:{{ userinfo.work }}</p>
        <p>公司:{{ userinfo.company }}</p>
        <p>Email:{{ userinfo.email }}</p>
      <ul class="linkmore">
        <li><a href="/" class="talk" title="给我留言"></a></li>
        <li><a href="/" class="address" title="联系地址"></a></li>
        <li><a href="/" class="email" title="给我写信"></a></li>
        <li><a href="/" class="photos" title="生活照片"></a></li>
        <li><a href="/" class="heart" title="关注我"></a></li>
      </ul>
    </div>
....
{% for content in blog_body %}
      <li>
        <div class="arrow_box">
          <div class="ti"></div>
          <!--三角形-->
          <div class="ci"></div>
          <!--圆形-->
          <h2 class="title"><a href="{% url 'article' content.id%}" target="_blank">{{ content.blog_title }}</a></h2>
          <ul class="textinfo">
            <a href="/"><img src="{{ content.blog_imgurl }}"></a>
            <p> {{ content.blog_body }}</p>
          </ul>
          <ul class="details">
            <li class="likes"><a href="#">10</a></li>
            <li class="comments"><a href="#">34</a></li>
            <li class="icon-time"><a href="#">{{ content.blog_timestamp }}</a></li>
          </ul>
        </div>
        <!--arrow_box end--> 
      </li>
      {% endfor %}
      ···

修改完成后,就可以看到最终的样式了。

屏幕快照 2016-01-04 15.08.01.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容