Django第一步
对于一个web框架,掌握了三部分的内容,就可以说是迈出了第一步。
1. 准备开发环境
2. 创建一个工程,并运行
3. 开发hello world应用
1. 准备环境
首先应该是安装python和django。这点官方网站有很详细的说明,网上也有很多教程,这里就不再重复了,只是表达一个对操作系统的观点:
Mac OS:对程序员和用户都很友好
Linux: 对程序员很友好
Widows:对用户貌似友好
到底使用哪个操作系统,仁者见仁。
然后是开发工具的选择。建议抛弃IDE,使用一个好的文本编辑器。强烈推荐vim。但如果你选择Emacs,我无话可说。
2. 创建工程
Django作为一个web框架,第一步应该是能够在浏览器中看到页面。如果已经安装好环境的话。
首先创建工程:django-admin.py startproject depot,即开始创建名为depot的工程。
与rails相比,过程很安静,结果很干净。如下:
depot/
__init__.py
manage.py
settings.py
urls.py
这几个文件的作用如下:
_init__.py :Python的模块定义文件。 这是一个空文件,一般你不需要修改它。
manage.py :一个命令行工具,生成这个文件仅仅是为了方便。可以通过python manage.py help 查看该工具的功能。完全不需要编辑这个文件。
settings.py :该 Django 项目的设置或配置。
urls.py:Django项目的URL设置。
与rails不同,django初始工程的文件很少,可以很容易地阅读所有的代码。但这些文件已经构成了一个可运行的Django应用。
进入工程目录并运行该工程:
cd depot/
python manage.py runserver
可以看到一些提示信息:
Validating models...
0 errors found
Django version 1.3, using settings 'depot.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[29/Jan/2012 02:09:17] "GET / HTTP/1.1" 200 2049
此时web server(开发环境!)已经运行了,用浏览器访问http://127.0.0.1:8000/,可以看到如下的界面:
说明Django已经开始工作了。
3. hello Django!
与rails不同,django不需要生成controller,helper, view 等等一大堆文件,要实现一个hello程序,只需要几行代码。
Django Web应用中通常包含URLconf, view, template, model 四个部分(参考《URLconf+MTV:Django眼中的MVC》)。但这些部分不是完全必需的。比如我们要实现一个最简单的 "hello, Django!", 只需要定义URLconf和view即可。
让我们把“需求”明确一下,hello,Django!实现如下功能:在浏览器中输入http://127.0.0.1:8000/hello, 显示“hello Django!”。
首先要实现一个视图(view)
来响应请求。在Django中视图是一个函数,该函数接受一个HttpRequest参数,并返回一个HttpResponse。我们可以在任何地方定义
这个函数,但通常会放在Django app 的 views.py 文件中。在hello,Django中我们不需要创建一个Django
app(因为不需要model),所以可以在project 目录中创建一个view.py 文件,并定义hello(request)视图函数:
depot/views.py:
- from django.http import HttpResponse
- def hello(request):
- return HttpResponse("hello, Django!")
接下来是将前面定义的URL 映射到 这个视图函数。这是由URLconf完成的。URLconf的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。
打开生成的urls.py文件,先在文件前面import刚才创建的view,然后在tuple类型的变量urlpatterns中加入hello的映射关系:
- from django.conf.urls.defaults import patterns, include, url
- from depot.views import hello
- urlpatterns = patterns('',
- url(r'^hello/$', hello),
- )
此时访问 http:/127.0.0.1:8000/hello, 将会显示 hello, Django!
URLconf理解起来也很容易,即 urlpatterns中的每一项是一个二元组(正则表达式,视图函数)。当Django
接收到HTTP请求的时候,从urlpatterns中找到匹配的表达式,并将请求发生给对应的视图函数,最后视图函数返回一个HTTP响应,交给
Django处理。如此而已。
至此,Django的第一步已经迈出,你至少已经可以开始CGI风格的web开发了。
Django第一步的更多相关文章
- 第一步 django的下载安装
django是python众多web框架中比较有名的一个,以大包大揽功能俱全而著名.但作为重量级的web框架,难免性能上回有所损失,不过由于其封装了各种API,在开发的时候会便利许多.所以也是深受欢迎 ...
- Django入门第一步:构建一个简单的Django项目
Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...
- python django第一天
django第一天,上一次是使用了virtualenv(沙盒),这一次就直接用virtualenv直接建一个django的环境,用来自己练着试试django: source django/Script ...
- django第一课 简单的网页视图
注意本人django版本2.0 python3.6 第一步:创建自己的django项目 django-admin.py startproject ** 第二步:进入**创建app pytho ...
- 笔记-django第一个项目
笔记-django第一个项目 1. 创建项目 安装 Django 之后,现在有了可用的管理工具 django-admin.可以使用 django-admin 来创建一个项目: 看下djang ...
- 开发thinkphp的第一步就是给Application目录(不包括其下的文件)777权限, 关闭selinux
开发thinkphp的时候, 总是会出现各种个样 的奇怪的毛病, 比如: 说什么Application目录不可写, 比如: 说什么 _STORAGE_WRITE_ERROR, 不能生成 Runtime ...
- ElasticSearch第一步-环境配置
ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSearch第四步-查询详解 Elasti ...
- Scala的第一步
第一步:学习使用Scala解释器 开始Scala最简单的方法是使用Scala解释器,它是一个编写Scala表达式和程序的交互式“shell”.在使用Scala之前需要安装Scala,可以参考 Firs ...
- UE4蓝图编程的第一步
认识UE4蓝图中颜色与变量类型: UE4中各个颜色对应着不同的变量,连接点和连线的颜色都在表示此处是什么类型的变量.对于初学者来说一开始看到那么多连接点, 可能会很茫然,搞不清还怎么连,如果知道了颜色 ...
随机推荐
- centos7.2 rabbitmq3.6.2源码部署
1.安装所有依赖包yum install -y gcc ncurses ncurses-base ncurses-devel ncurses-libs ncurses-static ncurses-t ...
- ubuntu 使用小技巧
1. 查看网速 ethstatus ubuntu下用ethstatus可以监控实时的网卡带宽占用.这个软件能显示当前网卡的 RX 和 TX 速率,单位是Byte 安装 ethstatus 软件 sud ...
- java.lang.NoClassDefFoundError: org/hibernate/service/ServiceRegistry] 类似问题
使用Hibernate时出现以上错误,在Java Project中运行无误,但是来到Dynamic Web Project中却出现了如下错误: hibernate 报错:java.lang.NoCla ...
- LibreOJ#6030. 「雅礼集训 2017 Day1」矩阵
https://loj.ac/problem/6030 如果矩阵第i列有一个黑色, 那可以用他把第i行全都染黑,也可以使任意一列具有黑色 然后就可以用第i行把矩阵染黑 染黑一列的代价最少是1 染黑一行 ...
- typora快捷键之速成笔记
使用心得:用起来相当的顺手,强烈推荐小伙伴使用该工具,内置快捷功能很贴心 工具下载: https://download.csdn.net/download/lele508994993/10392197 ...
- stl第二级空间配置器详解(1)
SGI STL考虑到小型内存区块的碎片问题,设计了双层级配置器,第一级配置直接使用malloc()和free():第二级配置器则视情况采用不同的策略,当配置区大于128bytes时,直接调用第一级配置 ...
- 微服务深入浅出(7)-- 网关路由Zuul
Zuul用于构建边界服务,致力于动态路由,过滤,监控,弹性伸缩和安全等方向. 1.Zuul+Ribbon+Eureka结合,可以实现智能路由和负载均衡 2.网关将所有服务的API接口统一聚合统一暴露 ...
- dockerfile创建镜像及容器
第一步: 从王总git上:http://git.oursdata.com/wangyue/dockerfiles.git 进入下图的文件夹中 然后执行以下的说明执行步骤 第二步: 开发环境dock ...
- 正则表达式入门之学习路线&七个问题
由于工作需求,需要使用正则表达式查找满足某种模式的字符串,但因为之前都没有接触过相关内容,最开始的时候看了一些已经被别人写好了的正则表达式,本来打算可能可以直接使用: 最全的常用正则表达式大全——包括 ...
- Dream------Hadoop--Hadoop HA QJM (Quorum Journal Manager)
In a typical HA cluster, two separate machines are configured as NameNodes. At any point in time, ex ...