美文网首页我爱编程
建立你的第一个python django app

建立你的第一个python django app

作者: 鸟它鸟 | 来源:发表于2018-05-26 23:25 被阅读0次
    django简单工作逻辑

    根据上图,我们可以简单的看出来,我们在访问django网页的时候,url会在urls表中做匹配,如果匹配到了,url表会将匹配到的url下发到指定app的url表中再次进行匹配,匹配成功则运行已定义好的函数,那么由此看来,我们首先得自建一个app。

    基础环境搭建看之前的文档吧https://www.jianshu.com/p/8aaa38c1619a

    首先我们建立一个app

    (python36env) [root@xxx01 ops]# python manage.py  startapp dashboard
    (python36env) [root@xxx01 ops]# ls
    dashboard  db.sqlite3  manage.py  ops
    

    建立完成后,我们看到多了一个dashboard的目录

    (python36env) [root@xxx01 ops]# tree dashboard/
    dashboard/
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
    
    1 directory, 7 files
    

    目录中有些文件,目前我们先不了解太多,先跑一个hello world再说

    1 . 首先我们配置一下app添加

    (python36env) [root@xxx01 ops]# vim ops/settings.py
     33 INSTALLED_APPS = [
     34     'django.contrib.admin',
     35     'django.contrib.auth',
     36     'django.contrib.contenttypes',
     37     'django.contrib.sessions',
     38     'django.contrib.messages',
     39     'django.contrib.staticfiles',
     40     'dashboard.apps.DashboardConfig',
     41 ]
    

    打开主程序的ops/settings.py配置文件,然后找到INSTALLED_APPS,在里面将我们刚刚新建的dashboard的项目添加。
    这里的路径django已经帮我们处理了,所以我们直接从程序/路径开始写程序的定位即可,具体映射文件的信息如下,这个是建立app的时候自动生成的

    (python36env) [root@xxx01 ops]# cat dashboard/apps.py
    from django.apps import AppConfig
    class DashboardConfig(AppConfig):
        name = 'dashboard'
    

    2 . 建立url映射

    (python36env) [root@xxx01 ops]# vim ops/urls.py
    from django.conf.urls import url,include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^dashboard/', include("dashboard.urls")),
    ]
    

    在这里,我们要导入django.conf.urls中的include模块,然后再添加一条dashboard的映射记录,即当匹配到访问http://x.x.x.x/dashboard/的时候将url传递给dashboard.urls进行二次匹配

    3 . 建立dashboard中的urls映射表
    这玩意建立app后不会自动生成,我也很懵逼,既然不会自动生成,我们手动建立吧。
    由于这玩意是映射视图函数的,我们现在还没有一个视图函数,所以这个映射不咋好写,先搞个视图函数去

    (python36env) [root@xxx01 ops]# vim dashboard/views.py
    from django.shortcuts import render
    from django.http import HttpResponse
    # Create your views here.
    
    def index(request):
        return HttpResponse("hello world!!")
    
    编写一个index的函数,当被调用的时候通过HttpResponse的方式返回hello world!!
    

    视图编写完成后,再写url映射

    (python36env) [root@xxx01 ops]# vim dashboard/urls.py
    from django.conf.urls import url
    from .views import index
    
    urlpatterns = [
        url(r'^hello/',index),    #编写映射关系,当访问到hello的时候返回index函数的输出
    ]
    

    之后启动服务吧

    (python36env) [root@xxx01 ops]# python manage.py  runserver 0.0.0.0:8000
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    May 26, 2018 - 15:23:52
    Django version 1.11.13, using settings 'ops.settings'
    Starting development server at http://0.0.0.0:8000/
    Quit the server with CONTROL-C.
    

    启动服务后,我们访问下看看效果

    hello world!!

    相关文章

      网友评论

        本文标题:建立你的第一个python django app

        本文链接:https://www.haomeiwen.com/subject/gglvjftx.html