1、            创建项目

33进入在python目录下的scripts文件后执行

django-admin.py   startproject  mysite

这样就生成了名为mysite 的工程。

可执行.\manage.py runserver  运行开发服务器此时, 终端下会输出

登录 http://127.0.0.1:8000/  显示这样一个页面

同时终端会输出[13/Aug/2014 01:05:14] "GET / HTTP/1.1" 200 1957

从左往右依次为时间戳、请求、http状态码 、 字节数

2、            创建blog应用

执行 .\manage.py startapp blog

这样就创建了blog app, 在项目(mysite)的目录下会有blog的目录。

之后还需要 在mysite 目录下的sittting.py 中找到元组INSTALLED_APPS ,  在元组的末尾添上‘blog.app’,  (注意逗号)

3、            设计model

在models.py中加入下列代码

from django.db import models

from django.contrib import admin

class BlogPost(models.Model):

title = models.CharField(max_length = 150)

body = models.TextField()

timestamp = models.DateTimeField()

4、            设置数据库

如果是使用sqlite3,只需在setting.py 的 Databases字典中补全 前两项 即‘ENGINE’: 'django.db.backends.sqlite3'

‘NAME’ =   ****\django.db  #为数据存放地址,自定义

然后执行.\manage.py syncdb #同步数据 终端中,会看到下列输出

Creating table auth_message

Creating table auth_group

……..

之后会被问一下与django.contrib.auth app有关的问题,许按步  骤填写

5、            设置自动admin应用

在 settings.py 中 ‘django.contrib.auth’ 下添加下列一行

‘django.contrib.admin’

然后再次执行syncdb命令 ,

设置完app后, 需要为它指定一个URL

在urls.py 中 去掉rl(r'^admin/', include(admin.site.urls)) 前的注释符

最后, 在 models.py 导入admin

from django.contrib import admin

并在最后加上一行注册model的代码

admin.site.register(BlogPost)

6、            试用admin  登录 127.0.0.1:8000/admin 后输入 用户名和密码会看到一下页面

随意编辑几篇 blog并保存。为了然列表更美观在models.py中添加blogpostadmin类,并将它加到注册代码里

from django.db import models

from django.contrib import admin

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')

admin.site.register(BlogPost, BlogPostAdmin) #regiet blogpost model

刷新一下页面, 会看到

相比原先有了 title 和timestamp 栏

7、            建立blog的公共部分。

创建文件 archive.html 保存到blog\templates中内容如下

{% for post in posts %}

<h2>{{post.title}}</h2>

<p>{{post.timestamp|date}}</p>

<p>{{ post.body}}</p>

{% endfor %}

然后创建视图函数打开blog\view.py文件并输入:

from django.template import loader, Context

from django.http import HttpResponse

from mysite.blog.models import BlogPost

def archive(request):

posts = BlogPost.objects.all()

t = loader.get_template('archive.html')

c = Context({'posts': posts})

return HttpResponse(t.render(c))

之后再创建 url模式 在mysite/urls.py 添加

url(r'^blog/', include('mysite.blog.urls')),

这会捕捉任何以blog/开始的请求, 并传递给接下来的url模式

Mysite/blog/urls.py:

from django.conf.urls.defaults import *

from mysite.blog.views import archive

urlpatterns = patterns('',

url(r'^$', archive),

)

8、            最后润色

创建base.html 文件, 并保存在mysite/blog/templates内容如下:

<html>

<style type="text/css">

body { color: #cdcdcd; backgroud:#cdcdcd; padding: 0 5em; margin: 0}

h1 { padding:2em 1em; backgroud: #675}

h2{color: #cdcdcd; border-top: 1px dotted #cdcdcd; margin-top; 2em}

p {margin: 1em 0}

</style>

<body>

<h1>mysite.example.com</h1>

{% block content %}

{% endblock %}

</body>

</html>

然后更新achive.html内容:

{% extends "base.html" %}

{% block content %}

{% for post in posts %}

<h2>{{post.title}}</h2>

<p>{{post.timestamp|date}}</p>

<p>{{ post.body}}</p>

{% endfor %}

{% endblock %}

运行后登陆http://127.0.0.1:8000/blog/

可在models.py文件中添加嵌套类 Meta:是blog 按顺序排序

from django.db import models

from django.contrib import admin

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')

admin.site.register(BlogPost, BlogPostAdmin) #regiet blogpost model

‘-timestamp’为降序  ‘timestamp’为升序

通过django 速成 blog的更多相关文章

  1. Django架设blog步骤

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  2. Django架设blog步骤(转)

    最近在研究Python,起初是因为想做个爬虫,昨天看了点基础教程,台湾辅仁大学的视频,了解了python的语法规范及语言特性,主要有三: 1.动态脚本语言: 2.语法简洁,强制缩进: 3.应用广泛,w ...

  3. Django 开发blog未完待续

    [root@sishen simpleblog]# python3.5 Python 3.5.4 (default, Sep 20 2017, 20:37:45) [GCC 4.4.7 2012031 ...

  4. django创建blog

    如果本文看不懂的,去看的我视频吧!http://www.testpub.cn/ ------------------------------------------- Django 自称是" ...

  5. django demo --blog

    详情,请看虫师博客http://www.cnblogs.com/fnng/p/3737964.html 和https://my.oschina.net/matrixchan/blog/184445  ...

  6. 三个在线django速成教程(转)

    add by zhj: 除了这几个在线的,有些书也不错 1. Two Scoops of Django 2. Instant Django 1.5 Application Development St ...

  7. Django创建一个简单的blog

    1. 使用django-admin.py 创建mysite项目 sunny@sunny-ThinkPad-T450:~/PycharmProjects$ django-admin.py startpr ...

  8. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  9. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

随机推荐

  1. std::multiset

    Set.multiset都是集合类, 差别在与set中不允许有重复元素, multiset中允许有重复元素. sets和multiset内部以平衡二叉树实现.   multiset 多重集合容器是一个 ...

  2. MS09-012 PR提权

     漏洞编号:MS09-012 披露日期: 2009/4/14 受影响的操作系统:Windows 2008 x64 x86;XP;Server 2003 sp1 sp2; 测试系统:windows 20 ...

  3. 02jmeter-函数助手使用

    示例:__Random函数 1.打开函数助手,并按提示写入value 2.引用.复制出${__Random(1,99,gp)}放到需要引用的地方 3.请求成功后可通过debug sampler查看变量 ...

  4. 03 Node.js学习笔记之根据http请求路径返回不同数据

    在Nodejs中,当客户端请求的路径不同时,NodeJS处理返回不同的数据 步骤: //1.载入http模块 var http=require('http'); //2.创建一个http服务 var ...

  5. ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  6. 安装配置 Android Studio

    概述 Android Studio 本身应该是开箱即用的,但是由于 dl.google.com 访问太慢,导致了这样那样的问题,因此我们只需要改一下 hosts 就行了 具体步骤 在Ping检测网站查 ...

  7. Spring事务传播属性有那么难理解吗?

    学习东西要知行合一,如果只是知道理论而没实践过,那么掌握的也不会特别扎实,估计过几天就会忘记,接下来我们一起实践来学习Spring事务的传播属性. 传播属性 传播属性定义的是当一个事务方法碰到另一个事 ...

  8. 函数进阶(三) day14

    目录 昨日内容 迭代器 可迭代对象 迭代器对象 for循环原理 三元表达式 列表推导式 字典生成式 zip 生成器表达式 生成器 yield 递归 今日内容 匿名函数 内置方法 掌握 了解 异常处理 ...

  9. Asp.net WebApi的授权安全机制 Basic认证

    1:Home/index.cshtml下面的Html代码 <div> <input value="1点击先登陆" type="button" ...

  10. Swagger解决你手写API接口文档的痛

    首先,老规矩,我们在接触新事物的时候, 要对之前学习和了解过的东西做一个总结. 01 痛     苦 不做.不行 之前,前后端分离的系统由前端和后端不同的编写,我们苦逼的后端工程师会把自己已经写完的A ...