Menu
Woocommerce Menu

学习笔记,Django视图函数

0 Comment


Springboot 学习笔记

1.安慕希操作符

治大国若烹小鲜。以道莅天下
——老子《道德经》

一、springboot 入门

#include<stdio.h>
main()
{
int score;
char grade;
printf(“input your score”);
scanf(“%d”,&score);
grade = score >= 90?’A’:(score >= 60?’B’:’C’);
printf (“%dbelong is %c”,score, grade);
}


1、 Spring boot 简介

安慕希操作符从左往右依次运算,比较运算符的刚开始阶段级大于赋值符号。

本节内容

2、 微服务

谷粒大学 学习idea


  • Django web项目标周转流程剖析
  • 视图管理函数的概念
  • 多视图管理函数及收到参数

3、 景况筹算

jdk1.8

maven 3.3以上

idea2017

SpringBoot 1.5.9

maven设置

给maven的settings.xml文件标签增多

​ profile jdk1.8

IDea设置 build > maven 设置自个儿的maven 和setting文件

1. web项目运作流程分析

一般说来状态下,完整的管理流程如下:

  • 浏览器发起呼吁(浏览器:大叔,小编急需http://localhost:8000/polls这几个财富,给小编呢);
  • 服务器收到到客商要求,开端分析那些U哈弗L地址(服务器:介个家伙要什么样东东啊,掐掉U帕杰罗L私下认可的头顶http://localhost:8000,剩下的正是要拜谒的东东了,原本是要访问:polls/
  • 服务器urls.py模块管理路由(服务器:来来来,来笔者的mysite/urls.py中看看,有木有和您要的东东看似的,找啊找啊找啊找找到二个r"^polls/",就是它了,它是哪个人啊原本是隔壁老王啊include("polls.url")
  • 服务器urls.py再三再四搜索include含蓄的下顶级路由(服务器:隔壁老王,那一个东西要申请polls/在那之中的东东,你看看你家有木有这一个东东,此时掐掉起头的”polls/”,起始查找””(找的是多个空白字符),
    polls/urls.py的源委,找啊找啊找啊找~找到二个url(r"^$"),对应的就是views.index管理函数了)
  • 服务器管理视图的函数(服务器:老王说在小编家床的面上有个views视图里面有个index管理函数,就是它了,然后将床单index函数管理的结果,扔给了浏览器去显得了)

看样子这里是不是曾经晕菜了,那就对了,接下去,看一张图,就精通了

图片 1

接下去,大家的根本就是视图管理函数

4、Spring hello world

2. 视图管理函数的概念

在大家创建好的运用polls/中,能够定义视图函数,特意用于收纳和响应ULX570L须求操作的函数;
该函数默许第多少个参数接收的正是二个呼吁对象HttpRequest,平时大家会将率先个参数写成request;函数前边的其余参数正是能够从U昂CoraL路线中接受的参数数据了。

接下去,先看大家事先定义的视图管理函数如下:

  • 率先个视图函数的概念和安排,修改mysite/polls/views.py文本如下

from django.http import HttpResponse# 访问应用首页def index:    return HttpResponse("Hello Django!")

polls/urls.py中增多路由布置

import django.conf.urls import urlfrom . import views# 配置路由操作urlpatterns = [    url(r"^$", views.index, name="index")]

mysite/mysite/urls.py元帅应用中的路由文件包蕴进去

urlpatterns = [    url(r"^admin/", admin.site.urls),    url(r"^polls/", include("polls.urls"))]

OK,配置截止,此时就可以在浏览器中平昔访谈大家的选用了
python3 manage.py runserver早先项目
浏览器中拜望:http://localhost:8000/polls就OK了

1、 创造一个maven工程

3.多视图管理函数及收到参数

接下去,大家定义四个视图处理函数,并定义接收的参数

修改polls/views.py文本,加多如下的多少个视图函数

import django.http import HttpResponseimport .models import Question# 首页视图处理函数def index:    # 查询所有的问题    question_list = Question.object.order_by("-pub_date")    # 拼接所有的问题    output = ", ".join([q.question_text for q in question_list])    # 返回视图    return HttpResponse# 定义问题详情视图def detail(request, question_id):    # 根据主键查询一个问题对象    question = Question.objects.get(pk=question_id)    # 返回视图    return HttpResponse("你要查看编号为<%s>的问题是:%s" % (question_id, question.question_text))# 定义结果视图def result(request, question_id):    # 直接返回一个视图    return HttpResponse("您正在查看编号为<%s>的问题的结果" % question_id)# 定义投票处理def vote(request, question_id):    # 直接返回一个视图    return HttpResponse("您准备给编号为<%s>的问题投票吗" % question_id)

接下来,修改polls/urls.py路由配置文件

from django.conf.urls import urlurlpatterns = [     url(r"^$", views.index, name="index"),     url(r"^(?P<question_id>\d+)$", views.detail, name="detail"),     url(r"^(?P<question_id>\d+)/results/$", views.results, name="results"),     url(r"^(?P<question_id>\d+)/vote/$", views.vote, name="vote"),]

OK,多个视图的管理函数就配备实现了,访谈方式如下

浏览器请求:http://localhost:8000/polls/处理函数:index

浏览器请求:http://localhost:8000/polls/1处理函数:detail

浏览器请求:http://localhost:8000/polls/1/results处理函数:results

浏览器请求:http://localhost:8000/2/vote处理函数:vote

2、 导入注重Springboot相关的依赖

 <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.9.RELEASE</version>    </parent>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>    </dependencies>

 <!--可以将应用打包成一个可执行的jar包-->    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build>

5、hello 探究

1、POM文件

1.父项目

 <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.9.RELEASE</version>    </parent>     他的父项目是 <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-dependencies</artifactId>        <version>1.5.9.RELEASE</version>        <relativePath>../../spring-boot-dependencies</relativePath></parent>  他来真正管理Springboot应用里面的所有依赖版本:

Spring Boot的本子仲裁宗旨:

然后导入重视暗中同意是没有要求写版本。(未有在dependencies中管理的借助自然需求申明版本号)

2. 导入的重视

 <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId> </dependency>

spring-boot-srarter-web

​ springboot场景运转器:导入了web模块常常运维所依赖的组件;

Spring
Boot将装有的效果场景都抽取出来,做成四个个的starters,只供给在档期的顺序中引进那个starter相关场景的持有注重都会导入进来,要用什么效劳,就导入什么处境运营器。

2、主程序类,主入口类

@SpringBootApplicationpublic class better {    public static void main(String[] args) {        SpringApplication.run(better.class,args);    }}

@SpringBootApplication : Spring Boot
应用标注在有个别类上,表明那个类是SpringBoot的主配置类,SpringBoot就应该运转那一个类的main方法来运维SpringBoot应用。

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(    excludeFilters = {@Filter(    type = FilterType.CUSTOM,    classes = {TypeExcludeFilter.class}), @Filter(    type = FilterType.CUSTOM,    classes = {AutoConfigurationExcludeFilter.class})})public @interface SpringBootApplication {

@SpringBootConfiguration : SpringBoot的配置类;

​ 标记在有个别类上,表示那是一个SpringBoot的配置类;

​ @Configuration:配置类上来注解这一个注脚;

​ 配置类——配置文件;配置类也是容器中的叁个零件:@component

@EnableAutoConfiguration:开启自动配置功效;

​ 在此以前必要安顿的东西,今后SpringBoot帮我们机关配置。

@AutoConfigurationPackage@Import({EnableAutoConfigurationImportSelector.class})public @interface EnableAutoConfiguration {

@AutoConfigurationPackage:自动配置包

​ @Import({Registrar.class})


Spring的底层注明@Import,给容器中程导弹入三个零部件,导入的组件由Registrar.class


将主配置类(@SpringBootApplication申明的类)上边包车型大巴包及下边全数组件扫描到Spring容器;

@Import({EnableAutoConfigurationImportSelector.class})

​ 给容器中程导弹入组件?

​ EnableAutoConfigurationImportSelector:导入那多少个组件的选用器:

​ 将具备须要导入的组件以全类名的点子赶回,这么些组件就能被增加到容器中;


会给容器中程导弹入比较多的自发性配置类(xxxAutoConfiguration);便是给容器中程导弹入这一个场地须要的保有组件,并布署好那么些组件;

有了机关配置类,免去手动编写配置注入功用组件等工作;

SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader)

从类路线下得META_INF/spring.factories中赢得EnableAutoConfiguration制定的值,将那些值作为机关配置陪导入到容器中,自动配置类就立见效能,帮我们开展机动配置职业。

6、 快速创设SpringBoot

  • 暗许生成的SpringBoot项目:
  • 主程序已经变化好,只要求编写制定本人的逻辑
  • resources文件夹中的目录结构
    • static:保存全数的静态财富;js css images;
    • templates:
      保存全体的模板页面;(暗中同意jar包,嵌入式tomcat,暗中同意不协助jsp页面),可以选取模板引擎(freemarker,thymeleaf);
    • application.properties:SpringBoot应用的配备文件。能够修改部分暗中同意设置。

二、配置文件

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图