zoukankan      html  css  js  c++  java
  • Django 视图与网址

    Django 的视图与网址

    Django 的网址是写在 urls.py 中,用正则表达式对应 views.py 中的一个函数(或者 generic类)。

    新建一个项目

    django-admin startproject mysite
    

    运行成功的话,会看到如下的目录样式

    mysite/
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
    

    在执行命令后,新建了一个 mysite 目录,其中还有一个 mysite 目录,这个子目录 mysite 中是一些项目的配置 settings.py 文件,总的 urls 的配置文件 urls.py 以及部署服务器时用到的 wsgi.py 文件,init.py 是 python 包目录结构所必须的,与调用有关。

    新建一个应用

    python manage.py startapp learn
    

    mysite 目录下多了一个 learn 文件夹,目录结构如下

    learn/
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
    

    把心定义的 app 加到 settings.py 中的 INSTALL_APP

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'learn',
    ]
    

    如果新建的 APP 不加入到 INSTALL_APPS 中的话,django 就不能自动找到 app 中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/下的文件)。

    定义视图函数

    learn 目录中,把 views.py 的内容修改为

    #coding:utf8
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse(u"欢迎")
    

    第一行声明了编码为 utf8 ,使用了中文。
    第二行引入了 HttpResonse ,它是用来向网页返回内容的,就像 python 中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。

    我们定义了一个 index 函数,第一个参数必须是request,与网页发来的请求有关,request 变量里面包含的 postget 的内容,用户浏览器,系统等信息在里面。

    函数返回了一个 HTTPResponse 对象。

    修改 mysite/mysite/urls.py 这个文件

    Django 1.8.x 及以上,官方鼓励先引入,再使用

    from django.conf.urls import url
    from django.contrib import admin
    from learn import views as learn_views
    
    urlpatterns = [
        url(r'^$',learn_views.index)
        url(r'^admin/',admin.site.urls)
    ]
    
    [root@Django mysite]# python manage.py runserver 0.0.0.0:8000
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    April 20, 2017 - 03:38:37
    Django version 1.11, using settings 'mysite.settings'
    Starting development server at http://0.0.0.0:8000/
    Quit the server with CONTROL-C.
    

    然后访问网页就可以看到打印的内容了。

  • 相关阅读:
    Array对象
    属性描述对象
    Object对象
    console对象与控制台
    编程风格
    错误处理机制
    13、百钱买百鸡之数学优化
    12、c程序中编程,统计一行中数字字符的个数。
    10、输入某年某月某日,判断这一天是这一年的第几天?
    9、c语言输入一个整数怎么分别输出它的每位上的数字
  • 原文地址:https://www.cnblogs.com/andy-linux/p/6742884.html
Copyright © 2011-2022 走看看