django快速搭建简单blog

来源:互联网 发布:java中的流 编辑:程序博客网 时间:2024/05/21 10:38
一.前言


声明:参考了python web开发,以及虫师的blog:http://www.cnblogs.com/fnng/p/3737964.html
特此感谢。


由于版本问题,有些技巧以及命令需要更改,所以搭建过程花费了我一些时间,希望这个教程能提供帮助


这是我学django快速搭建的第一个website
用到的技术:


django1.9  python2.7.5 vim  linux 






二.过程


第一部分


1.创建工程



django-admin startproject mysite








2.创建应用blog



./manage startapp blog








3.初始化数据库:就是为对象自动创建数据库表 这里下次要应用在mysql,
这里按照书上的先用sqlite


./manage migrate








4.设置超级用户,即admin,输入命令后要输入用户名 和 输入两次密码


./manage createsuperuser








5.设置admin的应用,初始的admin只有2个选项,后面可以将blog加上去
打开~/mysite/mysite/setting.py,找到INSTALL_APPS一行,在()最后一行
加'blog', 记得要加上,


INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
)


查看mysite/mysite/urls.py中url(r'admin/')这一行有没有被注释掉(1.9默认打开),如有就取消注释
这是当你输入./manage runserver时就能看到看到一个网址127.0.0.1:8000 用浏览器打开就够看到itwork
,然后输入127.0.0.1:8000/admin/ 如果你输入帐号密码后能进入后台,恭喜,你前面的操作都很成功!








第二部分






6.设计model
进入mysite/blog/,打开models.py,输入(可以直接cp ,覆盖)


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


# Create your models here.
class BlogsPost(models.Model):
    title = models.CharField(max_length = 150)
    body = models.TextField()
    timestamp = models.DateTimeField()


admin.site.register(BlogsPost)










7.再次初始化数据库,书上好像没有这点,如果没做那么你在admin刷不出blog这块。


./manage makemigrations
./manage migrate










8.写一篇文章:进去blog创建一个我们的老传统:helloworld,然后点击save吧。(以前我觉得helloworld只是
很随意的一句话 ,后来写得多了,尤其是最近人工智能的发展,我感觉helloworld有很深奥的内涵)










9.更改blogpost显示: save完后和我们平时看到标题不一样,都是生硬的blogproject标题,这里得改,很简单只要加上一句话,和一个单词(注意admin.site.register()里面要加上BlogPostAdmin)


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


# Create your models here.
class BlogsPost(models.Model):
    title = models.CharField(max_length = 150)
    body = models.TextField()
    timestamp = models.DateTimeField()


class BlogPostAdmin(admin.ModelAdmin):
    list_display = ('title','timestamp')
    
admin.site.register(BlogsPost,BlogPostAdmin)










第三部分 创建blog的公共部分



10. 创建模板,在blog目录下创建一个templates文件夹,创建index.html,输入下面内容(cp)


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










11.创建视图:打开blog/views.py


#coding=utf-8
from django.shortcuts import render
from blog.models import BlogsPost
from django.shortcuts import render_to_response


# Create your views here.
def index(request):
    blog_list = BlogsPost.objects.all()
    return render_to_response('index.html',{'blog_list':blog_list})










12.创建一个blog的url:进入mysite/mysite/urls.py ,(cp内容覆盖即可)


#coding=utf-8
from django.conf.urls import patterns, include, url
from django.contrib import admin


urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^index/$', 'blog.views.index'),
)










13.你可以再次运行./manage.py runserver ,打开127.0.0.1/index/查看你的文章是否实现(到这里我的127.0.0.1竟然出现404奇怪)


第四部分 设计你的网页吧




14.添加样式:在blog/templates下创建一个base.html文件,vim 输入以下内容


<html>
      <style type="text/css">
        body{color:rgb(0,0,0);background:rgb(255,255,255);padding:0 5em;margin:0}
        h1{padding:2em 1em;background:white}
        h2{color:rgb(110,180,198);border-top:1px solid black;margin-top:2em}
        p{margin:1em 0}
      </style>


      <body>
        <h1>平凡的blog</h1>
        <h3>认真做事,踏实做人,徐来不躁</h3>
        {% block content %}
        {% endblock %}
      </body>
</html>












15.修改blog/index.html的页面使样式得以展现


{% extends "base.html" %}
  {% block content %}
      {% for post in posts %}
      <h2>{{  post.title }}</h2>
      <p>{{ post.timestamp | date:"1,F jS"}}</p>
      <p>{{ post.body }}</p>
      {% endfor %}
  {% endblock %}














最后声明:能够让你快速搭建一个blog,增加兴趣,深入的话还要多看书... 
0 0