前言

Django第一篇简单的介绍了环境搭建与创建Django项目的两种方式,以及如何启动服务,在前端访问HelloWorld地址,这篇内容首先学习一下Django项目中的各个模块的用途及Django视图和网址的关系,最后我们再简单的开发一个网页

模块详解

我们仍然使用上一篇文章中创建的项目,目录结构如下

django_first:这个目录最上层位项目根目录,同名的二级目录是创建项目时自动生成的(django-admin.exe startproject django_first)

app_first:创建app时自动生成的目录(python manage.py satrtapp app_first),一个django项目可以包含多个app

migrations:这个目录同样是在创建app时自动生成的,以后存放和数据库相关的文件

setting.py:整个项目的配置文件,包含了app的配置,模板的配置,数据库的配置等等全部在这个文件中

urls.py:URL配置表文件,主要是将URL映射到应用程序上。当用户请求某个URL时,django会根据这个文件夹中的映射关系指向某个目标对象(简单的说就像当你调用某一个函数时,它可以根据你的参数去找这个函数,他关联了views中的某一个函数)该对象可以是某个应用中的urls.py文件,也可以是某个具体的视图函数。在django中,这个文件也被称为URLconf,这是django非常强大的一个特性。

wsgi.py:这个文件据说是项目上线时使用的,目前用不到(资料:WSGI是 Web Server Gateway Interface缩写,它是python所选择的服务器和应用标准,django也会使用。wsgi.py定义了我们所创建的项目都是WSGI应用)

admin.py:项目的后台,只需要简单的添加一些代码即可拥有一个管理后台

apps.py:存储对应app的配置信息

models.py:与数据库操作相关,存入或读取数据时时用到这个,当然用不到数据库的时候你可以不使用

tests.py:测试项目的文件

views.py:处理用户发送的请求,从urls.py中对应过来,通过渲染templetes中的网页可以将内容显示

以上就是所有模块的主要功能,要想深入理解我觉得还要经过长时间的实践,很多理论的东西真的不 是一天两天就能理解的,所以我们目前只需要大概都是用来做什么即可

视图

故名思意,我觉得这里的视图就是访问url时,展示的内容或者一个url的功能,views.py就是存储了一些功能函数,如果你接触过QT,那么就很类似信号与槽的机制。接下来我们再简单的写一个案例-实现一个简单的计算器

views.py中写入如下代码

from django.shortcuts import render, HttpResponse

# Create your views here.
def hello_world(request):
return HttpResponse("hello world") def add(request):
a = request.GET["a"]
b = request.GET["b"]
result = int(a) + int(b)
return HttpResponse("{} + {} = {}".format(str(a), str(b), str(result))) def sub(request):
a = request.GET["a"]
b = request.GET["b"]
result = int(a) - int(b)
return HttpResponse("{} - {} = {}".format(str(a), str(b), str(result))) def mult(request):
a = request.GET["a"]
b = request.GET["b"]
result = int(a) * int(b)
return HttpResponse("{} * {} = {}".format(str(a), str(b), str(result))) def divi(request):
a = request.GET["a"]
b = request.GET["b"]
result = int(a) / int(b)
return HttpResponse("{} / {} = {}".format(str(a), str(b), str(result)))

网址

网址就是我们浏览器中输入的一串字符串,当访问某一个字符串时,浏览器会显示相应的内容,我们再urls.py中加入如下代码,使其与视图关联起来

"""django_first URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path from app_first import views urlpatterns = [
path('admin/', admin.site.urls),
path("helloworld/", views.hello_world, name="hw"), path("add/", views.add, name="add"),
path("sub/", views.sub, name="sub"),
path("mult/", views.mult, name="mult"),
path("divi/", views.divi, name="divi")
]

接下来我们启动服务,然后浏览器中输入地址 127.0.0.1:8000/计算方法名称name/?数字1&数字2, 如:http://127.0.0.1:8000/add/?a=1&b=2, 你会看到浏览器返回的数据

总结

1. 先简单了解Django项目中每一个模块的用途即可

2. views与urls的关系,能够把这两个文件中的函数与地址关联起来

3. 启动服务的命令及地址访问的方式,如果你对这个地址有疑问,可以再了解一下get请求和post请求,为后面内容打一下基础

Django-视图&网址的更多相关文章

  1. Django视图与网址

    Django中网址是写在 urls.py 文件中,用正则表达式对应 views.py 中的一个函数(或者generic类),我们用一个项目来演示. 下载本节所有源代码: 学习编程最好的办法就是动手敲代 ...

  2. 1.2、Django 视图与网址__进阶

    Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...

  3. django视图函数解析(三)

    1 视图views概述 1 作用: 视图接受web请求并响应web请求 2 本质: 视图就是python中的处理函数 3 响应: 一般是一个网页的HTML内容.一个重定向.错误信息页面.json格式的 ...

  4. 【Mac系统 + Python + Django】之开发一个发布会系统【Django视图(二)】

    此学习资料是通过虫师的python接口自动化出的书学习而来的,在此说明一下,想学习更多的自动化的同学可以找虫师的博客园,非广告,因为我python+selenium自动化也是跟虫师学的,学习效果很好的 ...

  5. Django 视图(View)

    1. 视图简介 2. URLconf 1)关联各应用下的 URLconf 2)URLconf 的编写 3)namespace 反向解析 3. 视图函数&错误视图 4. HttpRequest ...

  6. [diango]理解django视图工作原理

    前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...

  7. Django 2.0 学习(03):Django视图和URL(下)

    接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...

  8. 如何在django视图中使用asyncio(协程)和ThreadPoolExecutor(多线程)

    Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 Runt ...

  9. Django 视图系统

    Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...

  10. 令Django 视图有默认 login_required

    方法一 from django.template import RequestContext from django.shortcuts import render_to_response from ...

随机推荐

  1. 2018-8-10-用-sim-卡加密保护资金

    title author date CreateTime categories 用 sim 卡加密保护资金 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17 ...

  2. Vue 子组件传父组件

    vue中的传值是个很烦的问题,记录一下自己完成的这个需求. 首先,被引用的称之为子组件,当前页面为父组件,这个不能搞错. 子组件传值,要用到this.$emit. 子组件页面,需要在一个函数中使用th ...

  3. js基础——对象和数组

    1.Object类型 1)使用new运算符    var box = new Object();===>等同于 var box = Object();(省略new关键字)    box.name ...

  4. C# json 转 xml 字符串

    本文告诉大家如何将 json 转 xml 或将 xml 转 json 字符串 首先需要安装 Newtonsoft.Json 库,打开 VisualStudio 2019 新建一个 dotnet cor ...

  5. linux内核指针和错误值

    很多内部内核函数返回一个指针值给调用者. 许多这些函数也可能失败. 大部分情况, 失 败由返回一个 NULL 指针值来指示. 这个技术是能用的, 但是它不能通知问题的确切特性. 一些接口确实需要返回一 ...

  6. Storm使用总结

    Strom安装 Strom启动 ./zkServer.sh start 启动nimbus主节点: nohup bin/storm nimbus >> /dev/null & 启动s ...

  7. UI 素材相关收集

    图标素材收藏网址  阿里:iconfont.cn 图片压缩:https://tinypng.com/ gif动图压缩:https://tool.gifhome.com

  8. ES的索引查询和删除

    postman 1.查看es状态 get http://127.0.0.1:9200/_cat/health 红色表示数据不可用,黄色表示数据可用,部分副本没有分配,绿色表示一切正常 2.查看所有索引 ...

  9. Python进程池使用

    from multiprocessing import Pool from time import sleep def Foo(i): sleep(1) print(i) if __name__ == ...

  10. Github安装和使用(超级详细)

    Github (原创:黑小子-余) 小编我是一名Git新手,然后花三天时间通过查找网上资料,了解Git的简单使用.本次我就实战操作git安装.github仓库创建.上传代码到github上.从gith ...