1.在D盘创建mysite工程项目:  django-admin startproject mysite

manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。

settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

urls.py ----- 负责把URL模式映射到应用程序。

2.在mysite下创建blog应用:

D:\mysite> cd mysite
D:\mysite> python manage.py startapp blog

3.初始化admin后台数据库,admin是Django自带的一个后台管理系统:(yes,需要设置用户名和密码)

D:\mysite> python manage.py syncdb

4.添加blog应用,打开mysite/mysite/settings.py文件,在末尾添加blog应用:

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

5.启动Django项目服务,访问后台管理:

D:\mysite> python manage.py runserver
浏览器访问:http://127.0.0.1:8000/admin/

输入用户名和密码,访问后台数据库管理界面。

6.设计Model,即设计数据库表。

打开blog目录下的models.py文件,这是我们定义blog数据结构的地方。打开mysite/blog/models.py 文件进行修改:

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)

再次初始化数据库:

python manage.py makemigrations blog

python manage.py syncdb

再次runserver启动服务,访问后台管理界面,创建文章,选择+Add,输入博客标题、正文、日期时间,点击save创建博客。

7.设置admin的BlogsPost界面,打开mysite/blog/models.py 文件。

 创建BlogPostAdmin类,继承admin.ModelAdmin父类,以列表的形式显示BlogsPost的标题和时间,修改如下:

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)

8.创建blog的公共部分:

对于Django,一个页面具有三个典型的组件:

模板(template):模板负责把传递进来的信息显示出来。

视图(view):视图负责从数据库获取需要显示的信息。

链接(URL):它负责把收到的请求和你的试图函数匹配,有时候也会向视图传递一些参数。

9.创建blog模板(template).

 在blog项目下创建templates目录(mysite/blog/templates/),在目录下创建模板文件index.html,内容如下:

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

10.创建blog视图(view).

  打开mysite/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() #获取数据库里面所拥有BlogPost对象
return render_to_response('index.html',{'blog_list':blog_list}) #render_to_response()返回一个页面,包括index.html和相关数据库中的数据

11.创建blog链接(URL).

  在mysite/urls.py文件里添加blog的url:

#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'^blog/', 'blog.views.index'),
)

启动服务python manage.py runserver ,访问http://127.0.0.1:8000/blog/,即可看见创建好的页面。

12.添加样式。

在mysite/blog/templates目录里创建base.html的模板:

<html>
<style type="text/css">
body{color:#efd;background:#453;padding:0 5em;margin:0}
h1{padding:2em 1em;background:#675}
h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
p{margin:1em 0}
</style> <body>
<h1>I am AbelSu</h1>
<h3>人面不知何处去,桃花依旧笑春风</h3>
{% block content %}
{% endblock %}
</body>
</html>

修改index.html模板,让它引用base.html模板和它的“content”块。

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

刷新界面后,如下图:

github:https://github.com/AbelSu131/mysite

最新文章

  1. 禁止手机页面中A标签长按弹出路径框
  2. Redis 64 steps
  3. 一个ajax同步与异步引发的血案。
  4. Matlab生成M序列的伪随机码
  5. Tomcat远程调试
  6. 关于Java单例
  7. oracle 11g 修改默认监听端口1521
  8. http://wenku.baidu.com/link?url=UGoPtZviipHzi5SDIlGx6hPFWAHTPLFXcZ7ieD15JMd81DEHqjehvphVMhqELmOK4qXR74dTT9nW8VBoApBc7Kfb1ZWrNF_i24fY1YRHVki
  9. rndc: connect failed: 127.0.0.1#953: connection refused
  10. 开源cms
  11. 数据挖掘经典书籍[ZZ]
  12. 拼接xml时出现内存溢出解决办法
  13. 初学linux命令
  14. 一个Socket连接管理池(心跳机制)
  15. (一) 从Angular1到Angular2的杂谈
  16. restful架构风格设计准则(五)用户认证和session管理
  17. Spring-cloud (七)自定义HystrixCommand
  18. NSURLSession 所有的都在这里(二)
  19. ASP.NET Core中使用GraphQL - 第七章 Mutation
  20. 20175324王陈峤宇 2018-2019-2《Java程序设计》结对编程项目-四则运算 第一周 阶段性总结

热门文章

  1. Unable to open debugger port (127.0.0.1:63777): java.net.BindException &quot;Address
  2. BZOJ2388: 旅行规划(分块 凸包)
  3. iTerm通过堡垒机自动登录服务器
  4. JS 数组对象根据下标拆分成新的数组
  5. springcloud 入门 2 (Enreka的服务和注册)
  6. python 流程控制(while)
  7. Azure 元数据服务:适用于 Windows VM 的计划事件(预览)
  8. Oracle EBS OPM close batch
  9. leveldb源码阅读
  10. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总