django简单入门

来源:互联网 发布:淘宝买电动车哪家 编辑:程序博客网 时间:2024/06/07 20:02
前面讲过了django学前需要做的准备,如果还没来的及看的话,请点击:http://blog.dreamchasinger.cn/?p=470 或http://blog.csdn.net/it_dream_er/article/details/51985936
今天就来分享一下django的入门知识,并带领大家写出自己的第一个页面,虽然很激动,但是还是希望大家按奈住自己的心情,认真学习!

怎样开始一个django项目?

    这估计是很多初学者最关心的问题,感觉自己无从下手,下面就分享一下。
    我们在前面已经成功安装django,如果还没安装的话,就快点安装吧!
    打开shell,运行命令:django-admin.py startproject myproject 就可以开始一个名为myproject 的django项目

    可以看到在当前的工作目录下出现了一个名为myproject的文件夹,其目录结构为:


    下面简单解释一下每个文件的作用:
        manage.py         一种命令行工具,可以让你以多种方式与django项目进行交互,在shell里面输入python3.4 manage.py help 可以查看他能做什么。
        __init__.py          学过python的都知道,在类里面,__init__方法是类的构造方法,在python里面,包的概念可能许多人并不清楚,在python里要求,一个文件夹要成为python的包,其目录下必须包含__init__.py文件,在这里其目的就是让python将你的项目文件夹视为一个开发包。这一般是个空的文件,并不需要去修改它。
        settings.py          该项目的一些设置或者配置。
        urls.py                 django项目的路由(url)设置,在后面会详细讲到。
        wsgi.py               wsgi的全称为Web Server Gateway Interface,即Web服务器网关接口,关于wsgi请点击:http://tyny.iteye.com/blog/1337600 ,而wsgi.py文件就是对其进行导入与配置
    好,解释了各个文件的作用,下面来个简单的例子,来边实践,边学习django开发。

第一个django页面

    在与__init__.py同级的目录下面定义一个名为view.py文件,这个文件的作用是定义页面的展示方式与内容的,文件名可以任意,但是为了达到见名知意的效果,建议使用此种文件名。
    view.py里面的内容如下:
        
#view.pyfrom django.http import HttpResponse #导入HttpResponse类,暂且理解为用于响应Http请求def hello(request):<span style="white-space:pre"></span>return HttpResponse("Hello World") #返回helloworld#urls.pyfrom django.conf.urls import urlfrom django.contrib import admin #上面是原本系统有的,下面一行是自定义导入的from myproject.view import hello #从myproject.view 里面导入hello,python里面,对于包下的文件可以通过点来代替斜杠(/),即从文件view.py里面导入hello方法urlpatterns = [<span style="white-space:pre"></span>url(r'^admin/', admin.site.urls),url(r'^hello/$',hello), #python路由表,通过正则匹配,当用户访问网站根下的hello时,如www.example.com/hello 时,就返回hello函数返回的内容。]

关于url正则匹配问题

可能许多人对上面的正则感到摸不着头脑,下面详细说明一下。
^                 代表开始,则任何以hello开头的都将匹配,例: 正则是:'^hello/' 则'/hello/aaa','/hello/' 也将匹配
$                代表结束,曾任何以hello结尾的都将匹配,例:正则是:'hello/$' 则'/aaa/hello/' '/hello/' 也将匹配
如果是:'hello',则任何包含hello的都将匹配,如:'/a/hello/','/hello/b/','/a/hello/hello/' 也将匹配
如果是:'^hello/$',则只匹配'/hello/'

下面还有更高级的正则:
    符号                                                              匹配                                                                            举例
.(英文句点)                                           任意一个单一字符                                                   a,1,x,?,n,! 等
     \d                                                           任意一位数字                                                                   0-9
   [A-Z]                                              大写A到Z中的任意一个字符                                                     A-Z
    [a-z]                                           小写a到z之间的任意一个字符                                                    a-z 
[A-Za-z]                                       a-z之间的任意一个字符,忽略大小写                                      A-Z  a-z
      +                                                  匹配更多的字符(一个或多个)          \d+匹配一个或多个数字,[A-Z]+匹配一个或多个大写英文字母
   [^/]+                     ^在方括号里面代表取反,匹配一个或多个不为/的字符     [^A-Z] 匹配单个不为大写字母的字符 
     ?                                                       匹配0个或多个之前的字符                                  A? 匹配0个或多个A
      *                                               类似于通配符,匹配0或多个字符                    * 匹配任意个任意字符,\d*匹配任意个数字  
   {1,3}                                 匹配重复数量,匹配1到3个之前的表达式                    \d{1,3}匹配一个,两个或三个数字

怎样运行服务

前面让大家运行python3.4 manage.py help 细心的同学会发现,最下面几行中,有一行runserver 参数,这就是运行服务的所需的命令,但是还不够,需要指定地址和端口号,由于只是在本地测试,地址就是localhost或者127.0.0.1,两者是等效的,端口号的话,最好是1024以后的,由于1024以前的只能由root账户使用,所以取1024以后的任意一个就可以,运行后如下图所示


然后访问浏览器,在地址栏输入localhost:8080 就可以访问了,结果如下图:




下面开发一个时间服务,页面显示当前系统时间

代码如下:
#view.pyfrom django.http import HttpResponse #导入HttpResponse类,暂且理解为用于响应Http请求from time import ctime()def time(request):
<span style="white-space:pre"></span>return HttpResponse("<h1>Now The Time Is: %s </h1>" % ctime())#urls.pyfrom django.conf.urls import urlfrom django.contrib import adminfrom myproject.view import timeurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^time/$',time)]


运行服务器:
python3.4 manage.py runserver localhost:8080

浏览器查看结果:


小技巧:
其实你是可以在一开始的时候,就将服务器打开,然后就可以动态的查看自己的开发过程,服务器会自动检测你对代码的更改情况,如果有错误也可以及时的发现。
debug状态:

如果你随便输入url,则会出现报错界面,如图:


如果代码内部有错误,如删去time函数的request参数,访问:


可以发现,里面有好多提示内容,如出错的原因,出错的代码及其附近的代码等好多内容,你可以轻松从里面发现你的错误原因,然后修正错误
这次就分享到这里,希望大家多去实践,熟能生巧。



0 0
原创粉丝点击