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. RAW网络编程

    LWIP提供了三种的可以被应用程序直接调用的接口API: (1)       低水平的,基于内核/回调函数的API(后面称 RAW API)    适用于数据量不大,没有os的MCU (2)      ...

  2. jmeter基本组件介绍

    常用术语统一:元件-jmeter工具菜单的一个子菜单(功能)  组件-一组元件的集合.如http请求与取样器的的关系  jmeter测试计划要素: (1)脚本中测试计划只能有一个: (2)测试计划中至 ...

  3. MyBatis 示例-联合查询

    简介 MyBatis 提供了两种联合查询的方式,一种是嵌套查询,一种是嵌套结果.先说结论:在项目中不建议使用嵌套查询,会出现性能问题,可以使用嵌套结果. 测试类:com.yjw.demo.JointQ ...

  4. Sublime Text 3 安装 Package Control 结果返回 275309,找不到 Install Package

    打开 Preferences->Settings , 查看 ignored-packages 数组中是否有 Package Control,如果有,删除即可.

  5. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. Mysql数据库(九)备份与恢复

    一.数据备份 1.使用mysqldmp命令备份 (1)备份一个数据库 mysqldump -u root -p dbname table1 table2 ... > D:\BackName.sq ...

  7. Redis(十)集群:Redis Cluster

    一.数据分布 1.数据分布理论 2.Redis数据分区 Redis Cluser采用虚拟槽分区,所有的键根据哈希函数映射到0~16383整数槽内,计算公式:slot=CRC16(key)&16 ...

  8. Unity修改脚本后调试

    修改脚本后调试有时候需要运行,为了提高效率可以设置编辑器中执行,同时也可以开启有效性检查(即更改面板变量即可刷新代码) [ExecuteInEditMode] public class XXXX: M ...

  9. linux sqlite安装

    wget http://www.sqlite.org/sqlite-3.6.16.tar.gz tar -zxvf sqlite-3.6.16.tar.gz  cd sqlite-3.6.16 ./c ...

  10. mysql全局变量和局部变量

    全局变量和局部变量 在服务器启动时,会将每个全局变量初始化为其默认值(可以通过命令行或选项文件中指定的选项更改这些默认值).然后服务器还为每个连接的客户端维护一组会话变量,客户端的会话变量在连接时使用 ...