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

    Django 视图与网址:
    
    一,首选,新建一个项目(project),名称为mysite:
    
    django-admin startproject mysite
    
    node2:/app/mysite#cd ..
    You have mail in /var/spool/mail/root
    node2:/app#tree
    .
    └── mysite
        ├── blog
        │   ├── admin.py
        │   ├── admin.pyc
        │   ├── apps.py
        │   ├── __init__.py
        │   ├── __init__.pyc
        │   ├── migrations
        │   │   ├── __init__.py
        │   │   └── __init__.pyc
        │   ├── models.py
        │   ├── models.pyc
        │   ├── tests.py
        │   └── views.py
        ├── db.sqlite3
        ├── manage.py
        └── mysite
            ├── __init__.py
            ├── __init__.pyc
            ├── settings.py
            ├── settings.pyc
            ├── urls.py
            ├── urls.pyc
            ├── wsgi.py
            └── wsgi.pyc
    
    4 directories, 21 files
    node2:/app#
    
    
    我们会发现执行命令后,新建一个mysite目录,其中还有一个mysite目录,这个字目录mysite中是一些项目的设置
    
    settings.py文件
    
    
    我们到外层那个mysite目录下(不是mysite中的mysite目录)
    
    
    二,新建一个应用(app),名称叫learn:
    
    python manage.py startapp learn # learn 是一个app的名称
    
    node2:/app/mysite#python manage.py startapp learn 
    node2:/app/mysite#tree learn/
    learn/
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py
    
    1 directory, 7 files
    
    
    
    把我们新定义的app加到settings.py中的INSTALL_APPS中:
    
    修改mysite/mysite/settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
        'learn',
    ]
    
    备注,这一步是干什么呢? 新建的app如果不加到INSTALL_APPS中的话,django就不能自动找到app中的模板文件
    (app-name/templates/下的文件)和静态文件(app-name/static/中的文件) , 后面你会学习到它们分别用来干什么.
    
    
    定义视图函数(访问页面时的内容):
    
    我们在learn这个目录中,把views.py 打开,修改其中的源代码,改成下面的:
    
    # coding:utf-8
    from django.http import HttpResponse
     
     
    def index(request):
        return HttpResponse(u"欢迎光临 自强学堂!")
    
    
    
    node2:/app/mysite/learn#cat views.py 
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    def index(request):
        return HttpResponse(u"欢迎光临 自强学堂!")
    
    第一行是声明编码为utf-8,因为我们在代码中用到了中文,如果不声明就报错
    
    
    第二行引入HttpResponse,它是用阿里向网页返回内容的,就像Python中的print 一样,
    
    只不会HttpResponse 是把内容显示到网页上。
    
    
    我们定义了一个index()函数,第一个参数必须是request
    
    request变量里面包含了get或post的内容,用户浏览器等
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^learn/', learnview.index),
    ]
    
    
    
    node2:/app/mysite/learn#cat views.py
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    def index(request):
        return HttpResponse(u"欢迎光临 自强学堂!")
    
    我们定义了一个index()函数,第一个参数必须是request,与网页发来的请求有关,request变量里面包含get或post的内容。
    
    函数返回一个HttpResponse 对象,可以经过一些处理,最终显示几个字到网页上。
    
    
    那问题来了,我们访问什么网址才能看到刚才写的这个函数呢?怎么让网址和函数管理起来呢
    
    
    
    定义视图函数有关的URL(网址)(即规定 访问什么网址对应什么内容)
    
    我们打开 mysite/mysite/urls.py 这个文件, 修改其中的代码:
    
    
    
    Django 1.8.x - Django 2.0 版本的同学,Django 官方鼓励(或说要求)先引入,再使用:
    
    from django.conf.urls import url
    from django.contrib import admin
    from learn import views as learn_views  # new
     
     
    urlpatterns = [
        url(r'^$', learn_views.index),  # new
        url(r'^admin/', admin.site.urls),
    ]
    
    node2:/app/mysite/learn#cat views.py
    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    def index(request):
        return HttpResponse(u"欢迎光临 自强学堂!")
    

  • 相关阅读:
    5分钟造出好记又难猜的密码!
    拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布
    VSALM 动手实验
    #VSTS日志# TFS 2015 Update 2 RC2新功能
    用户故事驱动的敏捷开发 – 1. 规划篇
    精益软件开发与精益管理:从一家关闭的汽车厂重焕青春说起
    创建用户故事地图(User Story Mapping)的8个步骤
    用户故事地图(User Story Mapping)之初体验
    (视频) 基于HTML5的服务器远程访问工具
    比较php字符串连接的效率
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349382.html
Copyright © 2011-2022 走看看