第一个Django小例子

前言

最近要搞一个比赛,技术大神说要用python作为后端,并且采用django框架,这让我完全不懂的人很尴尬呀,所以赶快自学了一下,也用django搭建了自己的一个博客网站,但是功能都还不完善,大家可以帮忙提下意见。
我的博客

Django介绍

Django

Django是一个高级的Python Web框架,它鼓励快速开发和简洁,务实的设计。

由经验丰富的开发人员构建,它负责Web开发的许多麻烦,因此您可以专注于编写应用程序,而无需重新创建轮子。它是免费的和开源的。
Django官方文档

安装

请确保已经正确安装了python和pip。使用pip安装django:

pip install django

希望你能在命令行看到这句话:

Installing collected packages: djang

Successfully installed django-1.11.2

然后在命令行输入:

python -m django version

就可以看到版本号啦

开始第一个例子

  1. 创建我们的工程目录,一行命令就够了:

    django-admin startproject mysite

    然后我们的目录结构会是这样:

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            wsgi.py
    

    第一个mysite是根目录,叫什么无关紧要。

    里面的manage.py是命令行的工具,能够让你管理这个项目。

    然后是mysite/目录,这是一个python包目录。

  2. 运行服务

    在第一个mysite目录下,输入:

    python manage.py runserver

    然后在浏览器输入:http://127.0.0.1:8000/

    然后你会看到It worked!等文字,说明已经部署好了。

  3. 创建一个Polls(民意调查)应用

    还是在当前目录:python manage.py startapp polls

    然后polls/目录如下:

    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    

    稍后我们再解释

    先创建我们的第一个网页,在polls/views.py中加入如下代码:

python
  from django.http import HttpResponse

  def index(request):
      return HttpResponse("Hello, world. You're at the polls index.")

然后在当前文件夹新建一个python文件:urls.py,复制代码:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

然后在mysite/urls.py中,覆盖原有代码:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

最后再次启动服务:

python manage.py runserver

在浏览器输入:localhost:8000/polls/ 就可以访问到刚刚编写的网页了。

分析代码

我们从下往上进行分析,首先在浏览器输入了localhost:8000/polls/,那么django就会帮你在mysite/urls.py中的urlpattern列表中寻找匹配polls/的那一项,我们可以看到,里面有两项:

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

url()参数:

  • 第一个参数是网页中的url的正则表达式,用来匹配你输入的网址。
  • 第二个是匹配之后要调用的方法。

include()函数是用来引用其他地方的URL配置文件,这里引用的是polls/urls.py。

我们输入了localhost:8000/polls/,django截取的就是polls/,所以很明显很够匹配到第一个url(),所以会进入polls/urls.py中继续匹配。

我们打开polls/urls.py文件:

from django.conf.urls import url

from . import views

urlpatterns = [

    url(r'^$', views.index, name='index'),

]

由于刚刚在mysite/url.py文件中进行了匹配,所以前面的polls/被消耗掉了,这里就没有字符串了,所以第一个^$就是代表的空串,匹配成功,所以会调用views.index方法。

接下来我们看看views文件:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

可以看到有个方法叫index,且传入了一个request参数。返回的是HttpResponse对象,这就是输出到我们页面的内容啦。

所以我们再把思路理清一下:

  1. 首先根据用户输入的地址,找到mysite/url.py中匹配的url()
  2. 然后调用匹配的方法,也就是url()的第二个参数(这里是polls/views.py中的方法)
  3. 再由方法生成我们看到的html页面。

所以我们写一个html页面话,首先要在views.py中写逻辑,然后在urls.py中配置views.py中的方法。

后记

这就是Django的第一个程序了,希望能够在接下来的几天把官方文档的例子都给大家讲讲,插入一些自己的心得体会。
入门例子2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容