Django简介:是一个开放源代码的web 应用框架,由python 写成。初次发布于2005年7月,并于2008年9月发布了第一个正式版本1.0.

文件说明:
manage.py:一个命令行工具,可以使我们用多种方式对Django的工程进行交互。
project: __init__.py:一个空文件,告诉python这个目录应该被看成一个包
settings.py:工程的配置文件
urls.py:工程的URL声明(主URL控制器)
wsgi.py:工程与WSGI兼荣的web服务器入口
数据库的配置:注意:Django 默认使用SQLite数据库
在settings.py文件中,通过DATABASES,选项进行数据库的配置
启动服务:python manage.py runserver

1.dj 创建子应用

2.创建完成子应用后,还要进行注册才可以

1.找到settings.py 文件

2.注册子应用

注意:其实导入的就是apps 的 ProjectsConfig 类

3.注册视图

1.在views.py 里面注册视图

from django.http import HttpResponse

# Create your views here.

def index(request):

"""

第一个视图函数

:return:

"""

return HttpResponse("<h1>Hello,你好测开大佬</h1>")

4.配置路由

全局路由

1.导入应用

2.配置路由

引入视图的类

from projects.views import index

urlpatterns = [

path('pro/', index)

]

5创建的子应用的各个文件的作用

1.admin.py   相当于控制台

2.apps.py进行应用配置

3.models.py定义数据库模型,跟数据库交互都在这里

4.test.py单元测试

5.views.py存放视图

6.创建子路由

1.首先在子应用里面新建urls.py 文件夹,用来存放路由

2.然后再urls 文件夹里面配置路由

from django.urls import path

from pro_01.views import index_02

urlpatterns = [

path('', index_02)

]

3.在全局路由里面导入

from django.urls import  include

配置路由

urlpatterns = [

path('pro_01/', include('pro_01.urls'))

]

4.然后根据全局配置的路由,就会一级级去寻找子路由

总结:1.每一个应用模块都会维护一个子路由

2.跟主路由一样,也是从上到下进行匹配

3.能匹配上,则执行path第二个参数指定的视图,匹配不上,则抛出404异常

注意:子路由不能再嵌套路由,可以写多级子路由

视图函数

def index_01(resquest):

"""

视图函数,该视图函数支持所有请求的方法

:param resquest:resquest是HttpRequest对象,包含前端用户的所有请求信息

:return: 必须返回一个HttpResponse对象或者子对象

"""

return HttpResponse("<h1>练习注册视图函数</h1>")

注意:需要在settings.py 文件里面注释掉 MIDDLEWARE 里面的

django.middleware.csrf.CsrfViewMiddleware'

视图函数如果我们支持多种请求方法的话,视图函数不便于维护,我们可以借助类函数

更好的创建各种请求

类函数

from django.views import View

class IndexView(View):

def get(self, request):

return HttpResponse("<h1>这是get请求方法</h1>")

def delete(self, request):

return HttpResponse("<h1>这是get请求方法</h1>")

def put(self, request):

return HttpResponse("<h1>这是get请求方法</h1>")

def post(self, request):

return HttpResponse("<h1>这是get请求方法</h1>")

(注意:我们可以适用alt+enter 快捷键来导入类,直接写好要导入的类的名字,然后按快捷键就行)

子路由视图配置:

1.我们需要导入子应用的视图模块

2,然后在path里面根据 views.写好的类视图.as_view()   as_view() 一定要加括号,不然会报错

from pro_01 import views

urlpatterns = [

# path('', index_02)

path('', views.IndexView.as_view())

]

Django创建应用以及路由的配置的更多相关文章

  1. Django创建应用、模型、配置后台自动管理

    1.创建应用 python manage.py startapp myblog 2.应用结构 3.创建模型(models.py) from django.db import models # Crea ...

  2. Django 创建app 应用,数据库配置

    一.create project mkdir jango cd jango 目录创建project myapp django-admin startproject myapp 2.在给project创 ...

  3. Django 创建APP - 简单路由系统案例

    架构图: setting.py: INSTALLED_APPS = [ ... 'bootstrap', ] myapp -> myapp -> urls.py from django.c ...

  4. django——url(路由)配置

    URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被 ...

  5. Django之路由控制配置

    路由控制配置 简单的路由配置 Django即支持1.x版本的路由配置也支持2.x的路由配置 1.x版本的路由配置是使用re进行路由配置(re_path) 2.x版本的路由配置使用(path)进行路由配 ...

  6. 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  7. django基础2: 路由配置系统,URLconf的正则字符串参数,命名空间模式,View(视图),Request对象,Response对象,JsonResponse对象,Template模板系统

    Django基础二 request request这个参数1. 封装了所有跟请求相关的数据,是一个对象 2. 目前我们学过1. request.method GET,POST ...2. reques ...

  8. 四 Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

  9. django之创建第7-4个项目-配置views文件实现url传值

    即:怎么实现url?name=xiaodeng&age=28等类似传值处理 1.配置views文件 # Create your views here. #coding:utf-8 from d ...

随机推荐

  1. 2019年2月5日训练日记关于int字节数,long int 字节数的讨论

    今天做到了个非常有意思的题目,是关于int最大最小值.用sizeof(int)查寻,返回四个字节,4个字节计算应该是4*8=32位,其中一位为符号位,且最高为不能为2所以应该减一,2^31-1=214 ...

  2. 《Docker从入门到跑路》之多阶段构建

    多阶段构建就是在一个Dokcerfile中定义多个FROM,每个FROM都可以使用不同的基础镜像,并表示开始一个新的构建阶段,我们可以很方便的将一个阶段的文件复制到另外一个阶段中,在最终的阶段保存你需 ...

  3. MySQL命令1

    开始学习MySQL. // 创建数据库 CREATE DATABASE db_name; // 删除数据库 DROP DATABASE db_name; // 显示数据库 SHOW DATABASES ...

  4. 大batch任务对structured streaming任务影响

    信念,你拿它没办法,但是没有它你什么也做不成.—— 撒姆尔巴特勒 前言 对于spark streaming而言,大的batch任务会导致后续batch任务积压,对于structured streami ...

  5. query 线段树 + 区间排序

    https://nanti.jisuanke.com/t/41391 这个题目没有很难想,比较暴力,但是要会算复杂度,不会算复杂度,就会觉得自己的算法会超时,实际上不会. 这个题目就是直接暴力求出每一 ...

  6. 简单搜索 kuangbin C D

    C - Catch That Cow POJ - 3278 我心态崩了,现在来回顾很早之前写的简单搜索,好难啊,我怎么写不出来. 我开始把这个写成了dfs,还写搓了... 慢慢来吧. 这个题目很明显是 ...

  7. Oracle的三种循环

    一.loop循环 语法:声明循环变量loop判断循环条件 ,如果循环条件不成立,跳出循环if 条件表达式 thenexit;end if;语句块;改变循环变量的值end loop; 举例:输出1到10 ...

  8. 郭天祥TX-1C+DS12C887实现电子日历和闹钟

    经过几天时间,看着DS12C887的DataSheet把这个带闹钟的电子日历遍了出来. 发现了几个问题,在此记录一下: DS12C887虽然说带闰年.星期等等的自动计算,可是在手工设置时间时,居然可以 ...

  9. Asp.Net Core MVC在View中,根据用户权限动态生成菜单

    1. 用户登录时,将用户的权限写入Cookie: //将需要的信息写入claims后 var identity = new ClaimsIdentity(claims, IdentityConstan ...

  10. Flutter 标签类控件大全Chip

    老孟导读:Flutter内置了多个标签类控件,但本质上它们都是同一个控件,只不过是属性参数不同而已,在学习的过程中可以将其放在放在一起学习,方便记忆. RawChip Material风格标签控件,此 ...