Flask Web项目中的动态链接现实方法与静态文件

Flask Web项目中的动态链接现实方法与静态文件

Flask Web项目中的动态链接现实方法与静态文件

关于链接

我们常用的超链接,能够帮我们跳到指定的位置,同样,对于一个多路由的web项目,是需要跳转到不同的页面的,例如,从登陆页跳到主业,这些跳转也是根据URL来定位的。

所谓URL,可以简单理解为类似现实中的唯一的地理位置地址,通过该地址,能找到指定的位置(不存在的话会返回404页面)。准确来说,URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。顺便提一下比较类似的概念:URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源;URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:[email protected]。也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。

回到Flask Web 程序,在模板中直接写固定的简单路由没有问题,但是路由包含可变的部分时(动态路由),在模板中就不好构建正确的URL了。不建议直接编写URL会对代码中定义的路由产生不必要的依赖关系。当要重新定义路由时,模板中的链接可能会失效的。基于以上的原因,Flask提供了url_for()这个辅助函数,可以使用程序URL映射中保存的信息生成URL。简单例子,url_for('user',name='Mike',_external=True),返回的URL结果是http://localhost:5000/user/Mike。注,5000是Flask的默认端口

Flask Web项目中的动态链接现实方法与静态文件

关于静态文件

在一个正式程序中,除了python代码和模板外,通常是少不了静态文件的。什么是静态文件呢,我理解为通常是不会经常变化/动态变化的,而且被固定引用的文件,如HTML代码中引用的图片,js代码和css代码。这个特别提及是因为在Flask项目中,默认设置的情况下,程序根目录中名为

static的子目录是放置静态文件的,就是说,程序会默认在这个目录下找静态文件的,它被当作一个特殊的路由。本人刚开始学的时候,就忽略了这个点,导致程序报错,一直说找不到静态文件,是一个新手坑


分享到:


相關文章: