最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过。Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧~

  本篇笔记(其实我的所有笔记都是),并不会过于详细的讲解。因此如果有大家看不明白的地方,欢迎在我正版博客下留言,有时间的时候我很愿意来这里与大家探讨问题。(当然,不能是简简单单就可以百度到的问题-.-)

  我所选用的教材是《The Django Book 2.0》,本节是入门简介部分,对应书中前两章。

------------------------------------------------------------------------------------------------------------------------------------------------

1、对Django的初步了解

  “本书所讲的是Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。”

  这是原书开篇对Django的介绍。不过对于它的“最小”,哪怕翻译无误,我的态度也是一笑置之。原因很简单,我并不了解其它Web开发框架,因此无法评论孰优孰劣,对于本书的评价也不能盲目认同。(小小啰嗦一下,大家忽略~)

2、什么是框架

  对于使用Python开发网页,在1998年的时候,直接使用CGI标准开发很流行——“首先做一个Python脚本,输出HTML代码,然后保存成.cgi扩展名的文件,通过浏览器访问此文件。”

  而在长期的开发中,人们慢慢从代码里总结出了一套套框架(也就是代码的模板),这就是Web开发框架,Django也就是其中之一——“Web框架为应用程序提供了一套程序框架, 这样你可以专注于编写清晰、易维护的代码,而无需从头做起。简单来说,这就是Django所能做的。”

3、MVC设计模式

  MVC设计模式,对应的中文含义是“模型-视图-控制器”。简单来说,就是把原本都写在一起的代码给拆分成松散结合的几部分,从而让思路更清晰、开发维护更方便。具体内容,这里不详加赘述。

4、Django历史与特点

  Django诞生于2003年秋天,是由Kansas州Lawrence城中的一个网络开发小组编写的。当时,他们被要求在很短的时间内完成大量的新闻站点,因此也就开发了一个Web开发框架来完成这个工作。直至2005年夏天,这个框架已经在开发许许多多网站的过程中基本开发完成,因此他们决定把这个框架发布为一个开源软件。

  之后的数年间,Django在世界广泛传播,有了数以万计的用户和贡献者。虽然仍旧是由最初的开发者(那个World Online小组的Adrian和Jacob)掌握,但其发展方向相对受社区团队的影响更大。

  说这些历史,除了为了让大家更好地了解Django,还因为它是开源的。虽然我并不反感各种商业软件,但我的确从心底里喜欢开源软件。个人性格问题,不多谈。至于更详细的Django历史,大家可以去看《The Django Book 2.0》或者自行搜索。

  除了开源软件本身的社区之外,Django还有个与历史相关的特点,那就是特别适合开发内容类的网站(因为它本身就是用来开发新闻站点的)。

5、开发环境

软件名称 版本 查看方法
Operating System Ubuntu 14.10 Ubuntu机器右上角可以找到“关于这台计算机”,点进去可以看到版本
Python 2.7.8 在终端输入“python --version”
Django 1.8.0.final.0 在终端输入"python",然后依次输入"import django"和"django.VERSION"
MySQL 5.6.24 在终端输入"mysql --version",看到"Distrib 5.6.24"就对了

  注意,我的Python和Django版本都与书中不符,因此笔记中全是以我的版本为准,书中版本并不保证兼容。

  希望大家在遇到版本兼容问题的时候,多去看看官方文档。个人感觉,除了恰好有人写的靠谱文章之外,文档总是你解决常见问题的最好方案。

6、尝试开发第一个项目(Hello World)

  之所以记录下这个过程,是为了说明使用Django开发时应当记住的一些小习惯,这都是很重要的东西。另外,再次说明,我写的仅仅是Django学习笔记,如果大家想看更详细的内容,那么一定要去看《The Django Book 2.0》原书,笔记只适合查阅。

  首先打开终端,在~/djcode/路径输入

    django-admin.py startproject qiqisite  # 创建一个站点,叫做qiqisite

  打开qiqisite,会发现里面已经建好了站点

相对路径 文件名 简单介绍
./ manage.py

一种命令行工具,允许你以多种方式与该Django项目进行交互。

键入python manage.py help,可以看到它提供的命令。

你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

./qiqisite/ __init__.py

让Python把该目录当成一个开发包(即一组模块)所需的文件。

这是一个空文件,一般你不需要修改它。

settings.py

该Django项目的设置或配置。

应当查看并理解这个文件中可用的设置类型及其默认值。

urls.py

Django项目的URL设置。

可视其为你的django网站的目录。

目前,它里面只有一些必须代码,构成了一个Hello World。

wsgi.py

和apache交互用的

(源自csdn上的问答,详见http://bbs.csdn.net/topics/390226637)

  下面,仍在~/djcode/qiqisite/下输入

    python manage.py runserver  # 这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问。

  如此一来,便可以在浏览器输入

    http://127.0.0.1:8000/  # 访问qiqisite这个站点

  注意,这种建立站点的方法用的是Django自带的开发服务器,这是个内建的、轻量的Web服务。它虽然使用简单,但与产品级的Web服务器(例如Apache)有很大差距——用它建立的服务器,在同一时间只能可靠的处理一次单个请求,并且没有进行任何类型的安全审计。因此,它只适用于调试,完全无法发布真正的站点。

------------------------------------------------------------------------------------------------------------------------------------------------

  至此,Django入门简介完成。下一篇,将从“视图与URL配置”开始,真正进入Django。

Django笔记 —— 入门简介的更多相关文章

  1. Django笔记 —— MySQL安装

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  2. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  3. Python编程从入门到实践笔记——列表简介

    Python编程从入门到实践笔记——列表简介 #coding=utf-8 #列表——我的理解等于C语言和Java中的数组 bicycles = ["trek","cann ...

  4. SpringBoot学习笔记(一)入门简介

    一.SpringBoot 入门简介 整体讲解内容概况: 1.1 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. Spring Boot ...

  5. Django笔记 —— 模型

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  6. Django笔记 —— 模板

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  7. [Python] Django框架入门

    说明:Django框架入门 当前项目环境:python3.5.django-1.11 项目名:test1 应用名:booktest 命令可简写为:python manager.py xxx => ...

  8. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

  9. PHP学习笔记 - 入门篇(5)

    PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...

随机推荐

  1. testng失败重跑

    重跑失败场景 1.要添加两个文件 背景:因为这里只是想单独展示失败的重跑的案例,所以先暂时把app这块的运行注释掉,只跑一个简单的demo,就一个简单类,类中就3个测试方法,失败重跑的原理是,运行方法 ...

  2. POJ-3067 Japan---树状数组逆序对变形

    题目链接: https://vjudge.net/problem/POJ-3067 题目大意: 日本岛东海岸与西海岸分别有N和M个城市,现在修高速公路连接东西海岸的城市,求交点个数. 解题思路: 记每 ...

  3. 前端高质量知识(一)-JS内存空间详细图解

    变量对象与堆内存   var a = 20;   var b = 'abc';   var c = true;   var d = { m: 20 } 因为JavaScript具有自动垃圾回收机制,所 ...

  4. Delphi7 企业版安装记录

    Borland Delphi Enterprise Version 7.0[Build 4.453] 云盘下载: 链接:http://pan.baidu.com/s/1gff6Fuz     密码:z ...

  5. 1018: Give me the answer

    1018: Give me the answer 时间限制: 1 Sec  内存限制: 32 MB提交: 55  解决: 15[提交][状态][讨论版][命题人:外部导入] 题目描述 Farmer J ...

  6. C语言中volatile关键字的作用[转]

    一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...

  7. Git配置和常用命令

    Git配置 git config --global user.name "hunng" git config --global user.email "huangthin ...

  8. 自己写js库,怎么支持AMD

    最近我打算把之前做项目写的一些工具集成到一个js库中,但是库既要在普通环境正常运行,又要在AMD环境下不暴露全局变量.一时间挺头疼的.随即我参考了一些现在流行的库的源码.学着写了一下,感觉还不错. 既 ...

  9. File类,递归

    File类 File文件和目录路径名的抽象表示形式.即,Java中把文件或者目录(文件夹)都封装成File对象. File类包含     路径    path E:\...     目录 direct ...

  10. rest_framwork组件

    rest framework介绍 (CBV(class base views)) 在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增.删.改.查的实现流程基本套路化,所以这部分代码也 ...