开发之前第一步,就是构造整个的项目结构。这就好比作一幅画,第一步就是描绘轮廓,有了轮廓,剩下的就是慢慢的填充细节。项目结构规划如下图:

项目结构描述:

本项目以fengzhengBlog为根目录。

admin、blogapp是两个app目录,用于实现项目主要功能:包括模型定义、视图定义等

css、js、images分别为样式文件、js、图片的静态文件存放目录。

template目录存放模板文件。

ueEditor是富文本编辑器uEditor的目录。

settings.py是全局配置文件,urls.py是路由配置文件

以下操作全部是在windows系统下完成。

1.创建项目

进入项目要存放的目录,在命令行中输入如下指令:

#django-admin.py 在你的python安装目录的Lib\site-packages\django\bin目录下
python G:\python\Python\Python2.7Install\Lib\site-packages\django\bin\django-admin.py startproject fengzhengBlog

之后会生成如下目录结构:

fengzhengBlog

|__fengzhengBlog

|__init.py        #有这个文件说明这个目录是python的一个包 可以为空

|__settings.py #全局配置文件

|__urls.py        #路由文件

|__wsgi.py       #web服务器网关接口 启动django时用

|__manage.py    #可以通过python manage.py runserver 启动网站(仅开发时使用)

2.创建blogapp,django中,一个项目下可以有多个app,每一个app可以是一块相对独立的功能模块,本例中,比较简单,blogapp就是博客管理功能模块。负责博客系统的文章、分类等的统一管理工作。

进入fengzhengBlog/fengzhengBlog目录,在命令窗口中执行如下命令:

python ../manage.py startapp blogapp

生成app的结构如下:

fengzhengBlog

|__blogapp

|__migrations  #修改Model后可以在不影响现有数据的前提下重建表结构

|__init.py        #有这个文件说明这个目录是python的一个包 可以为空

|__admin.py  #用于注册和设置模型的后台管理功能

|__models.py   #模型定义文件

|__test.py       #单元测试文件

|__views.py  #视图

3.添加静态文件目录js、images、css,并在urls.py中配置静态目录的路由。urls.py配置如下:

( r'^css/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': os.path.dirname(__file__) + '/css' }
),
( r'^js/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': os.path.dirname(__file__) + '/js' }
),
( r'^images/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': os.path.dirname(__file__) + '/images' } #这里也可以写绝对路径
),

4.创建ueEditor目录,将百度uEditor集成进来,集成过程可参考Django集成百度富文本编辑器uEditor

至此,项目结构规划完毕,下面,创建一个简单的模板,添加一些简单的html、js、图片等,查看是否正常运行。

在template目录下新建一个html文件,命名为test.html,内容如下:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="/js/test.js"></script>
<link rel="stylesheet" href="/css/bootstrap.min.css">
</head>
<body>
<div style="margin:20px auto auto 10px;">
<image src="http://images.cnblogs.com/png_favicon.png"/>
<button type="button" class="btn" onclick="test()"><i>{{ btnvalue }}</i></button>
</div>
<body>
</html>

在js目录添加test.js脚本文件,定义内容如下:

function test(){
alert('hello django');
}

在images目录下添加png_favicon.png图片。

在css目录下增加bootstrap.min.css文件。

在urls.py文件中添加路由映射:

url(r'^test$','fengzhengBlog.views.test'),

在views.py中定义视图处理方法:

#-*- coding:utf-8 -*-

from django.shortcuts import render_to_response

def test(request):
return render_to_response("test.html",{"btnvalue":"我是动态标记内容,clicke me"})

之后运行命令:

python manage.py runserver 1989

之后再在浏览器中输入http://127.0.0.1:1989/test  ,打开开发人员工具,观察发现图片、样式文件、脚本文件都已经加载成功:

查看页面,发现图片正常加载,而且模板中的动态参数也正常获取,点击按钮,脚本正常执行

django开发个人简易Blog——构建项目结构的更多相关文章

  1. django开发个人简易Blog——数据模型

    提到数据模型,一定要说一下MVC,MVC框架是现代web开发中最流行的开发框架,它将数据与业务逻辑分开,减小了应用之间的高度耦合.个人非常喜欢MVC开发框架,除了具有上述特性,它使得web开发变得非常 ...

  2. django开发个人简易Blog—nginx+uwsgin+django1.6+mysql 部署到CentOS6.5

    前面说完了此项目的创建及数据模型设计的过程.如果未看过,可以到这里查看,并且项目源码已经放大到github上,可以去这里下载. 代码也已经部署到sina sea上,地址为http://fengzhen ...

  3. 如何用django开发一个简易个人Blog

    功能概要:(目前已实现功能) 公共展示部分: 1.网站首页展示已发布的博客记录,包括名称.摘要信息.发布日期.阅读量及评论数. 2.首页文章列表可按照分类筛选. 3.点击标题或阅读全文链接,进入博客阅 ...

  4. 用django搭建一个简易blog系统(翻译)(一)

    Django 入门 原始网址: http://www.creativebloq.com/netmag/get-started-django-7132932 代码:https://github.com/ ...

  5. 用django搭建一个简易blog系统(翻译)(三)

    06. Connecting the Django admin to the blog app Django 本身就带有一个应用叫作Admin,而且它是一个很好的工具 在这一部分,我们将要激活admi ...

  6. vue学习记录①(vue-cli脚手架构建项目结构)

    我们直接从vue的工程化开始入手. 在这里用git命令行搭建项目环境.(当然直接cmd命令行下也是一样的) git下载安装地址:https://www.git-scm.com/download/win ...

  7. 微信小程序开发01 --- 微信小程序项目结构介绍

    一.微信小程序简单介绍: 微信官方介绍微信小程序是一个不需要下载安装就可使用(呵呵,JS代码不用下载吗?展示的UI不用下载吗?)的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用. ...

  8. 微信开发准备(二)--springmvc+mybatis项目结构的搭建

    转自:http://www.cuiyongzhi.com/post/34.html 前面一篇有说道如何在MyEclipse中搭建maven项目,这里将继续介绍如何在搭建好的基础maven项目中引入我们 ...

  9. 用django搭建一个简易blog系统(翻译)(四)

    12. Create the templates 你需要做三件事来去掉TemplateDoesNotExist错误 第一件,创建下面目录 * netmag/netmag/templates * net ...

随机推荐

  1. ios页面弹出方式《笔记》

    1.presentViewController 方式,动画效果是从底部弹出,主要用在除导航类页面的弹出 let anotherVC = UIStoryboard(name: "Main&qu ...

  2. Maemo平台上如何使用Openvpn

    Maemo是一个开源的智能手机软件平台社区,它是基于Debia的LInux发行版本,Maemo的大多是开源的,并已经制定了Maemo和诺基亚内部的设备与许多开源项目,例如,Debian的Linux内核 ...

  3. 手动获取酷我Mp3外链

    素材→http://player.kuwo.cn/webmusic/st/getNewMuiseByRid?rid=MUSIC_随便找一首歌http://www.kuwo.cn/yinyue/1034 ...

  4. Base64正反编码

    public class Base64 { private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E' ...

  5. Android之ListView——ArrayAdapter的用法学习

    当我们使用ListView时,必不可少的便会使用到adapter,adapter的用处就像是一个水管接口,把你想展现的数据与你希望展现的布局样式通过某种协定结合起来. ArrayAdapter针对每个 ...

  6. 在app中打开appStore中其他app

    var str = "https://itunes.apple.com/cn/app/zhang-jiange-hao-tou-zi-ke/id402382976?mt=8"//这 ...

  7. 转行IT行业的心路历程3

    16年丝袜生意很差的一年,老板的态度也不好,大唐本地人太歧视外地人了.而且我干的不开心没有前途,不能体现自我价值,无论你怎么努力. IT技术行业却不是这样,只要你努力肯学习,一定会有回报的. 在16/ ...

  8. VS2012下配置OpenCV2.4.5

    最近在折腾了一下VS2012的OpenCVS2.4.5配置,同VS2010下基本相同,做个简单的记录,以备日后查阅. 1. 安装OpenCV 从OpenCV官网:http://opencv.org/下 ...

  9. CCNA第三章子网划分,变长子网掩码(VLSM)和TCP/IP排错考试要点学习笔记

    1. 子网划分的好处      缩减网络流量; 优化网络性能; 简化管理; 可以更为灵活地形成大覆盖范围的网络.    2. 如何创建子网的步骤 首先,确认所需要的网络ID数; 其次,确认每个子网中所 ...

  10. 【C-数组】

    一.一维数组 ①.定义方式 类型说明符 数组名 [常量表达式]; 如:int array[10]; 注意: 1) 数组的类型实际上是指数组元素的类型.对于同一个数组,其所有元素的数据类型都是相同的. ...