2024年前端最全(二)urls(3),2024年最新蚂蚁金服面试有几轮

跳槽是每个人的职业生涯中都要经历的过程,不论你是搜索到的这篇文章还是无意中浏览到的这篇文章,希望你没有白白浪费停留在这里的时间,能给你接下来或者以后的笔试面试带来一些帮助。

也许是互联网未来10年中最好的一年。WINTER IS COMING。但是如果你不真正的自己去尝试尝试,你永远不知道市面上的行情如何。这次找工作下来,我自身感觉市场并没有那么可怕,也拿到了几个大厂的offer。在此进行一个总结,给自己,也希望能帮助到需要的同学。

面试准备

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

面试准备根据每个人掌握的知识不同,准备的时间也不一样。现在对于前端岗位,以前也许不是很重视算法这块,但是现在很多公司也都会考。建议大家平时有空的时候多刷刷leetcode。算法的准备时间比较长,是一个长期的过程。需要在掌握了大部分前端基础知识的情况下,再有针对性的去复习算法。面试的时候算法能做出来肯定加分,但做不出来也不会一票否决,面试官也会给你提供一些思路。

1.path基本规则:

在这里插入图片描述

2.默认支持的转换器:

str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式 str:xx

int,匹配正整数,包含0。

slug,匹配字母、数字以及横杠、下划线组成的字符串。

uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。(这是唯一的!)

path,匹配任何非空字符串,包含了路径分隔符

3.转换器的作用:(默认是str转换器:所以如果不设置转换器,那么接收到的一切值都是str字符串格式,如果要改变这个格式就使用到了转换器!)

在这里插入图片描述

一般情况下,使用path即可。但是,如果要匹配的过于复杂,使用path中的转换器无法解决的时候,就要使用到re_path(实则是使用正则匹配!)
4.re_path正则匹配:(浏览器中输入的ULR的地址参数可以任意多,只要包括规定的路径即可!)

在这里插入图片描述

示范:

1.urls.py文件:

“”"dj_test URL Configuration

The urlpatterns list routes URLs to views. For more information please see:

https://docs.djangoproject.com/en/2.1/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,re_path #导入re_path,使用正则

from . import views

urlpatterns = [ #主路由

path(‘admin/’, admin.site.urls),

path(‘test/’, views.test), #路径 关联的视图

path(‘test2//int:age/’, views.test2), #变量默认接收的是字符串形式 改变格式是通过转换器 int:age规定所接收的类型

re_path(‘^test3/(?P[0-9]+)’,views.test3)

]

2.views.py视图函数文件:

from django.shortcuts import render

from django.http import HttpResponse

Create your views here.

#视图操作

def test(request): #函数视图

return HttpResponse(“这里是帅哥”)

#url传参(url参数)

def test2(request,name,age): #函数视图

return HttpResponse(“我叫%s,今年%s岁”%(name,age))

def test3(request,bb): #函数视图

return HttpResponse(“哈哈哈”)

3.效果:

在这里插入图片描述

在这里插入图片描述


(3)include的作用(一个url对应一个视图函数,但我们的视图越来越多时,url也就越来越多。如果我们都将它们放进主路由里,不仅杂乱而且难找;所以引入include!)


1.include的作用:

一个project有一个总的urls.py

各个app也可以自己建立自己的urls.py(但是浏览器中访问url的时候最先访问的仍是总的urls.py文件)

所以用include()函数在project的urls.py文件进行注册(分配)

示范:

(1)项目目录下的主urls.py文件:

from django.contrib import admin

from django.urls import path,include #使用include要导入

from . import views

urlpatterns = [

path(‘admin/’, admin.site.urls),

path(‘music/’,include(‘music.urls’)), #第一个路径是app的路径

]

(2)App music里面的urls.py文件:

from django.urls import path

from . import views

urlpatterns = [

path(‘sing/’,views.sing),

]

(3)App music里面的views.py文件:

from django.shortcuts import render

from django.http import HttpResponse

Create your views here.

def sing(request):

return HttpResponse(‘让我们一起摇摆!!’)

(4)本地浏览器问:127.0.0.1:8000/music/sing。即可得到正确视图!

(2)拓展:path()中的参数kwargs

Kwargs为字典类型

可以传递额外的参数到views中

使用include的时候

需要统一给下面的url一些参数的时候

显得尤其有用

1.App music里面的urls.py文件:

from django.contrib import admin

from django.urls import path

from . import views

urlpatterns = [ #子路由

#传递一个Python 字典作为额外的参数传递给视图函数。

path(“sing/”,views.sing,{“name”:“小明”,“age”:18}), #对应的路径可以给对应的视图传值

]

2.App music里面的views.py文件:

from django.shortcuts import render

from django.http import HttpResponse

import time

Create your views here.

#音乐app下面的视图函数

def sing(request,**kwargs): #**表示接受字典型数据

#本地浏览器访问:127.0.0.1:8000/music/sing在pycharm终端中会输出!

print(kwargs) #输出:{“name”:“小明”}

print(kwargs.get(“name”)) #输出:小明

name=kwargs.get(“name”)

age=kwargs.get(“age”)

return HttpResponse(“{}太帅了,年龄是{}”.format(name,age)) #输出:小明太帅了,年龄是18

(4)页面重定向


(例如:在页面中登录QQ空间,登录成功后会跳转到你的QQ空间的页面)

1.App music里面的views.py文件:

from django.shortcuts import render,redirect #redirect是重定向;reverse

from django.http import HttpResponse

import time

Create your views here.

def test01(request):

print(“登录成功”)

time.sleep(3)

return redirect(“/”) #如果登录成功,返回到首页,首页没有地址,所以是/ 做了路由跳转=====重定向

2.App music里面的urls.py文件:

from django.contrib import admin

from django.urls import path

from . import views

urlpatterns = [ #子路由

path(“test01/”,views.test01),

]

3.项目目录下的urls.py文件:

from django.contrib import admin

from django.urls import path,re_path,include #include用来分配的

from . import views

urlpatterns = [ #主路由:只用来分配

path(‘admin/’, admin.site.urls),

path(‘’, views.index), #地址栏不写,则为首页

path(‘music/’, include(“music.urls”)),

]

4.项目目录下的views.py文件:

from django.shortcuts import render

from django.http import HttpResponse

Create your views here.

def index(request):

return HttpResponse(“这里是首页”)

5.如果现在在本地浏览器输入127.0.0.1:8000/music/test01,那么效果是等待3S后页面自动跳转到首页中!
拓展:如果某个被多次重定向地址,这个地址名发生改变,那将会引发我们要接连更改好多对他重定向的代码。想想都恐怖,所以path()中提供了一个name参数帮助我们解决这个难题!!!

**

name参数可以给这个url取一个合适的名字。通过给url取名字,以后在view或者模板中使用这个URL,就只需要通过这个名字就可以了。这样做的原因是防止url的规则更改,会导致其他地方用了这个url的地方都需要更改,但是如果取名字了,就不要做任何改动了。

**

1.项目目录下的urls.py文件:

from django.contrib import admin

from django.urls import path,re_path,include #include用来分配的

from . import views

urlpatterns = [ #主路由:只用来分配

path(‘admin/’, admin.site.urls),

path(‘music/’, include(“music.urls”)),

]

我们现在跳转的仍是App music下的路由,所以不需要编写项目目录下的views.py文件

2.App music里面的urls.py文件:

from django.contrib import admin

from django.urls import path

from . import views

urlpatterns = [ #子路由

path(“test01/”,views.test01),

path(“sing/”,views.sing,{“name”:“小明”,“age”:18},name=“bb”),

]

3.App music里面的views.py文件:

from django.shortcuts import render,redirect,reverse #redirect是重定向,reverse是将url的name解析成url本身的函数

from django.http import HttpResponse

import time

Create your views here.

#音乐app下面的视图函数

def sing(request,**kwargs):

name=kwargs.get(“name”)

age=kwargs.get(“age”)

return HttpResponse(“{}太帅了,年龄是{}”.format(name,age))

#登录页

def test01(request):

print(“登录成功”)

time.sleep(3)

#下面两者作用一模一样:

return redirect(“/music/sing”) #跳转到唱歌页面

return redirect(reverse(“bb”)) #reverse可以将当前这个bb的这个名称解析为它所对应的url地址, 即(当前视图的url路径):/music/sing

#解决无论url的地址如何改变,只要它的name属性不变这些关于他的重定向都可以正常执行!

4.在本地浏览器中输入:127.0.0.1:8000/music/test01,等待3S会跳转到唱歌页面。显示:小明太帅了,年龄是18

(5)Django怎样去调用漂亮的HTML前端页面呢?


(render方法是django封装好用来渲染模板的方法)

很方便,很好用!!!

1.模板放在哪?

1.在主目录下创建一个templates目录用来存放所有的html的模板文件.

2.templates目录里面在新建各个以app名字命名的目录来存放各个app中模板文件.

在这里插入图片描述

(1)App music里面的views.py文件:

from django.shortcuts import render,redirect,reverse

from django.http import HttpResponse

import time

Create your views here.

def login(request): #登陆

return render(request,“music/test01.html”) #返回HTML模板

#第二个html文件的路径可以直接写templates下的:因为在settings.py文件中已经配置好了!

在这里插入图片描述

(2)App music里面的views.py文件:

from django.contrib import admin

from django.urls import path

from . import views

react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

s://img-blog.csdnimg.cn/20200515161415556.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0OTA3OTI2,size_16,color_FFFFFF,t_70)

(2)App music里面的views.py文件:

from django.contrib import admin

from django.urls import path

from . import views

react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-uQffOZw9-1715571985590)]

[外链图片转存中…(img-OitVDO1x-1715571985591)]

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值