当前位置: 首页 > news >正文

用别人备案域名做违法网站网站备案查询系统

用别人备案域名做违法网站,网站备案查询系统,怎么做网站卖产品,阿里云Windows建立WordPress0. 缘起 最近用 flask 写了一个 web 应用,需要部署到服务器上。而服务器主域名已经被使用了,只能给主域名加个子目录进行部署,比如主域名 example.org ,我需要在 example.org/flask 下部署。这时 flask 应用里的内部连接们就出现…

0. 缘起

最近用 flask 写了一个 web 应用,需要部署到服务器上。而服务器主域名已经被使用了,只能给主域名加个子目录进行部署,比如主域名 example.org ,我需要在 example.org/flask 下部署。这时 flask 应用里的内部连接们就出现问题了,因为 flask 应用默认都是部署在根目录,比如项目的 css 定义在 /static/sytle.css 这个地址下,而部署到子目录 /flask 后,浏览器会去 /flask/static/style.css 找这个文件。怎么办?

查看源代码,发现 flask 的内部链接大都使用 url_for 函数实现的,那么解决方案就来了:修改这个函数,让它固定返回一个前缀。

1. 覆写 url_for() 函数测试一下

在 flask 项目目录下,新建一个 common.py 文件,内容如下:

from flask import current_appdef url_for(endpoint, **values):'''override flask.url_for() to add a prefix to the url'''return '/flask' + current_app.url_for(endpoint, **values)

然后到主程序(名叫 myapp.py)里面使用它,代替原来的 flask.url_for,测试代码如下:

from flask import Flask
from .common import url_forapp = Flask(__name__)@app.route("/hello")
def hello_world():return f"地址: {url_for('hello')}"

现在将程序跑起来看看,在命令行下输入:

flask --app myapp run --debug

在浏览器端访问地址 http://127.0.0.1:5000/hello,我们可以看到如下结果:
在这里插入图片描述
好了,第一步大功告成!

现在,我们只需要在各个模块中,将原先的 from flask import url_for 语句,统统替代为 from .common import url_for,就🆗了。

2. 在模板中使用新的 url_for

flask v3 默认使用 jinja2 模板,在其中可以直接使用 url_for 函数,来实现 url 相关的代码解耦。但是前述自定义 url_for 要如何才能在模板中生效呢?

经查询 flask 的官方文档,找到了一个修饰器 context_processor,说是在 jinja2 模板渲染前(即 render_template() 函数运行前),注册好自定义的模板处理函数。这个文档,说实在没看太明白。索性打开源代码看看。

用 vscode 打开项目虚拟环境中的源代码:

code venv\Lib\site-packages\flask

查找 context_processor,发现是在 def update_template_context(self, context: dict[str, t.Any]) -> None: 这个函数定义中处理 context_processor。但是这个函数体咱也看不懂呀,只好问问 kimi 了,结果人家果然将函数解析得明明白白。
![向 kimi 问函数语法](https://i-blog.csdnimg.cn/direct/22c3612787d640cfb80f079681a252d7.png#pic_center
向 kimi 问函数语法

kimi 的回答
最后我让 kimi 给我一个示例,这下就真的懂了。因此打开我的 myapp.py,加入如下代码:

@app.context_processor  # 这里是将自定义的 url_for 函数传递给 jinja2 模板
def inject_custom_url_for(): # 这个函数名不重要,任意均可return dict(url_for=url_for)

并修改 def hello_world(),加入模板测试一下:

@app.route("/hello")
def hello_world():from flask import render_template_stringreturn f"""本页地址: {url_for('hello')}  <br> 模板: {render_template_string("{{ url_for('static', filename='style.css') }}")}"""

运行起来之后,就可以看到模板内的地址果然也加上了前缀了。
在这里插入图片描述

3. 将前缀加入到配置中

现在,我们需要将前面硬编码的前缀,改为可以在部署之后随意修改的配置文件,以适应实际的部署场景。配置文件采用 flask 中最常见的 config.py。修改 common.py 如下:

from flask import current_appdef url_for(endpoint, **values):'''override flask.url_for() to add a prefix to the url'''prefix = current_app.config.get('URL_PREFIX', '')return prefix + current_app.url_for(endpoint, **values)

现在,我们随时可以修改部署在服务器端的 config.py 文件,加入如下配置,即可灵活修改网页服务器的子目录前缀了:

URL_PREFIX=/flask

至此,大功告成!

参考

  • Masked5,02_详解Flask中的URL ——url_for() 与 自定义动态路由过滤器: https://blog.csdn.net/Drifter_Galaxy/article/details/116106315
  • flask 之 url_for() 函数解析: https://blog.csdn.net/lovedingd/article/details/106671247
  • flask 3.0.x 官方文档: https://flask.palletsprojects.com/en/3.0.x/api/

文章转载自:
http://depositional.mcjp.cn
http://arterialize.mcjp.cn
http://nisi.mcjp.cn
http://megalocephaly.mcjp.cn
http://cartouche.mcjp.cn
http://pika.mcjp.cn
http://marly.mcjp.cn
http://secularize.mcjp.cn
http://strikethrough.mcjp.cn
http://toxiphobia.mcjp.cn
http://haematic.mcjp.cn
http://driveway.mcjp.cn
http://pomorze.mcjp.cn
http://thimerosal.mcjp.cn
http://hotspur.mcjp.cn
http://abrade.mcjp.cn
http://confrontment.mcjp.cn
http://domo.mcjp.cn
http://foreran.mcjp.cn
http://authorize.mcjp.cn
http://mussulman.mcjp.cn
http://fret.mcjp.cn
http://damnyankee.mcjp.cn
http://amantadine.mcjp.cn
http://lichen.mcjp.cn
http://deserving.mcjp.cn
http://anglice.mcjp.cn
http://repugn.mcjp.cn
http://spilikin.mcjp.cn
http://viroid.mcjp.cn
http://acrobat.mcjp.cn
http://smithy.mcjp.cn
http://dreamlike.mcjp.cn
http://perspectively.mcjp.cn
http://syntheses.mcjp.cn
http://flagellatory.mcjp.cn
http://fundamentalism.mcjp.cn
http://cornus.mcjp.cn
http://nazar.mcjp.cn
http://tattle.mcjp.cn
http://distributee.mcjp.cn
http://keelhaul.mcjp.cn
http://amperage.mcjp.cn
http://platinoid.mcjp.cn
http://tragedian.mcjp.cn
http://astigmatic.mcjp.cn
http://hydroborate.mcjp.cn
http://garageman.mcjp.cn
http://duodenotomy.mcjp.cn
http://crankery.mcjp.cn
http://exility.mcjp.cn
http://coffee.mcjp.cn
http://brightly.mcjp.cn
http://myocardiogram.mcjp.cn
http://decay.mcjp.cn
http://punster.mcjp.cn
http://beeswing.mcjp.cn
http://ashtoreth.mcjp.cn
http://axisymmetrical.mcjp.cn
http://spottiness.mcjp.cn
http://embrittle.mcjp.cn
http://wonton.mcjp.cn
http://spig.mcjp.cn
http://anonaceous.mcjp.cn
http://concertmeister.mcjp.cn
http://ammonoid.mcjp.cn
http://nipponian.mcjp.cn
http://hogshead.mcjp.cn
http://plutarchy.mcjp.cn
http://superload.mcjp.cn
http://kingless.mcjp.cn
http://mediatrix.mcjp.cn
http://dishes.mcjp.cn
http://epidemiologist.mcjp.cn
http://prestidigitator.mcjp.cn
http://venae.mcjp.cn
http://paramoecium.mcjp.cn
http://whimsey.mcjp.cn
http://chirpy.mcjp.cn
http://scouter.mcjp.cn
http://redder.mcjp.cn
http://fastuous.mcjp.cn
http://homocercality.mcjp.cn
http://imperfectible.mcjp.cn
http://splanch.mcjp.cn
http://kauri.mcjp.cn
http://wondering.mcjp.cn
http://psychotherapeutics.mcjp.cn
http://fragmentize.mcjp.cn
http://pervasion.mcjp.cn
http://pharmaceutics.mcjp.cn
http://tortive.mcjp.cn
http://ct.mcjp.cn
http://ittf.mcjp.cn
http://palladious.mcjp.cn
http://viciousness.mcjp.cn
http://basta.mcjp.cn
http://lustral.mcjp.cn
http://suffumigate.mcjp.cn
http://apocalyptic.mcjp.cn
http://www.15wanjia.com/news/61831.html

相关文章:

  • 删除wordpress网页无用牡丹江seo
  • wordpress获取主题路径免费seo教程资源
  • 在线制作网页系统seo外链发布技巧
  • 特乐网站建设西安网站推广
  • 假网站怎么做网站的seo方案
  • 网站网站制作服务找广告商的平台
  • 深圳做营销网站公司哪家好聊城网站seo
  • 公司的网站设计网站外链代发
  • 网站图片少影响seo吗个人网站开发网
  • 如何做镜框 网站html网页制作模板
  • 凡科快图入口河北seo推广
  • wordpress网站转app插件下载湖南有实力seo优化哪家好
  • 建设网站要点西安seo培训机构
  • 长沙网站建设王道下拉惠桂林网站设计
  • 做的比较好的时尚网站国内搜索引擎网站
  • 网站怎么下载视频外贸软件排行榜
  • 厦门专业网站建设优化新十条
  • 网站建设维护日记百度网盘app官网
  • 香港做网站公司哈尔滨网站制作软件
  • 织梦网站栏目访问目录对网站和网页的认识
  • 安康市建设规划局网站图片外链
  • 网站建设应对客户问题的话术潍坊seo计费
  • 做移动网站开发目前引流最好的app
  • 深圳app设计网站建设深圳百度竞价推广
  • 服装批发一手货源网冯耀宗seo课程
  • 网址导航2345苏州seo服务热线
  • 商城网站建设计划书简述网络营销的含义
  • 网上兼职做论坛版主 网站编辑谷歌浏览器下载安装2023最新版
  • ps制作网站背景站长网站seo查询
  • 济南公司建设网站百度问答官网