今天,首席CTO指出,与您分享Django如何传输静态网页的相关内容。其中,Django还将向Django介绍一个静态页面。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们立即开始。
本文目录清单:
1.如何在django休息中使用静态页面?2。如何在django 3中使用静态文件。Django如何制作静态页面?4。Python - - Django项目开发:配置项目/静态/路径,调用静态文件,例如CSS,IMG,JS等。5,DJANGO 1.9如何配置静态文件6,Django静态文件和动态文件,您想调用静态文件页面?通常,django开发背景动力学。前端使用NGINX和其他服务接收页面请求,然后将其传输到Django处理。静态页面直接允许NGINX的前端进行处理。如果您想在测试过程中查看静态页面效果,则可以参考Django Book中的内容。
建议使用新版本的Django进行开发。可以肯定的是,Django 1.4之后的Django 1.4的版本应支持以下设置
注意:Django 1.4版本需要在项目/urls.py的底部添加:
来自django.contrib.staticfiles.urls导入staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
Django 1.5 -django 1.8不需要添加上述代码。
settings.py静态文件相关示例代码和说明:
#静态文件(CSS,JavaScript,图像)
static_url ='/static/'#运行Python Manage.py collectStatic#static_root文件夹用于复制所有staticfiles_dirs中的所有文件,以及每个应用程序中的静态文件。join(base_dir,'Collected_static')#将静态文件存储在项目中的其他文件夹可用于将公共静态文件存储在项目中。Static_root#如果您不想使用staticfiles_ders,则不能使用它,您可以使用它,可以还放入staticfiles_dirs =(os.path.join(base_dir,“ comm_static”),'/path/path/path/erther/static/',#您到达时可以编写此行)#这是默认设置。Django将在staticfiles_dirs中的文件夹中找到一个文件和每个应用程序下的静态文件夹。))))
静态文件放在相应的应用程序下的静态文件夹中,或staticfiles_dirs中的文件夹。
当debug = true时,django可以自动找到放置在其中的静态文件。(django“ search设备”在staticfiles_finders中,找到找到它的过程,查找该过程的过程类似于在使用xxx的过程中使用xxx的过程在Python中导入XXX)。
示例项目dj18 statatic,在应用程序应用下的静态中有一个zqxt.png图片:
dj18statatic b-博客│├├─Init__。py│ -admin.py││-─..m- - __INIT __。py│├─................默认情况下,您会发现此文件夹││└-[zqxt.png]│-tests.py│││└└└└└└└已添加到staticfiles_ders│J--[JQuery.js]│├│├│├│├│├──-py│├─—settings.py│-urls.py│ - w - manage.py- manage..pypy
当debug = true in settings.py中时,打开静态文件以打开开发服务器python manage.py runserver直接访问 /static/zqxt.png。
您还可以在settings.py中指定所有应用程序共享的静态文件,例如jquery.js等。
staticfiles_dirs =(os.path.join(base_dir,“ commit_static”),),),),),),),),),),),),),),)
将jquery.js放在common_stative/js/中,以便您可以在/static/js/jquery.js中访问它!
如果网站的流量太大,则每次访问它时都会动态生成。执行SQL语句并消耗大量服务器资源。目前,您可以考虑生成静态页面。
生成静态非常简单。以下是一个示例:
只需写入views.py
从django.shortcuts导入渲染
来自django.template.loader导入render_to_string
导入操作系统
def my_view(请求):
context = {'some_key':'some_value'}
static_html ='/path/to/stative.html'
如果不是OS.PATH.EXISTS(static_html):
content = render_to_string('template.html',上下文)
用static_file开放(static_html,'w'):
static_file.write(内容)
返回渲染(请求,static_html)
在上面的示例中,当用户访问它时,如果您判断没有静态页面,则将自动生成静态页面,然后返回到静态文件。当文件存在时,它将不会再次生成。
您还可以使用一个文件夹,例如在投影下设置static_html文件夹,将生成的静态文件放入其中,从而使用户可以访问页面,例如访问静态文件。
更好的方法
但是,通常,由于Django具有缓存函数,因此无需生成静态页面。使用Django缓存(缓存)等效于生成静态页面,并且具有自动更新的函数,例如在30分钟内刷新页面内容。
在Django项目的开发中,就像普通的Web开发一样,不可能通过“ IMGS/BG.JPG”访问本地静态文件。有必要进行一些配置以实现静态文件访问。
首先,在项目根路径下创建一个新的静态文件夹,然后在静态文件夹下创建相应的CSS,IMGS,JS和其他文件夹,以存储静态文件,例如CSS,IMG,JS。
第二,项目配置
1.打开settings.py并将其添加到底部:
2.打开urls.py并将其添加到urlpatterns :(注意,如果您还将urls.py设置在博客目录中,则必须在blog/urls.py中进行修改。不要忘记导入设置):
(但是在测量之后,我可以完成静态文件的访问,而无需添加此文件)
3.在HTML模板的顶部添加:
然后以这种格式调用您需要的格式,例如:
最终重新运行该项目,Django可以找到本地静态文件,例如IMG。目前,可以使用IMG和其他文件显示与模板相对应的页面。
我想将以前的ASP.NET网站移植到Django,并发现Django似乎得到了静态资源的支持。您无法根据相对路径直接找到某些配置,找到很多解决方案,并按以下方式进行整理:
1. Django的静态资源配置与版本!InterSectionIntersectionRemember!InterSectionIntersection1.3先前和将来的配置不同!IntersectionSectionTrestection以下内容仅适用于Django1.9;
2.安装在设置中
应用
包括'django.contrib.staticfiles';
3. static_url in steratings.py是应用程序目录中静态文件所在的文件夹的相对路径。默认值为/静态/可以自定义;
4.调用时使用以下表格:
{%
加载
静止的
%}
IMG
src =“ {%
静止的
“ my_app/myexample.jpg”
%}“”
alt =“ [#0#] [#1#]” //
导入JS,IMG和其他静态文件后导入错误:
文件
“ D:python27libmimetypes.py”,“”
线
249,
在
enum_types
CTYPE
=
ctype.encode(default_encoding)
#
忽略
在
3.x!
Unicodecodeerror:
'ascii'
编解码器
cant
解码
字节
0xB0
在
姿势
1:
序数
不是
在
范围(128)
[27/dec/2015
15:26:32]
“得到
/static/assets/img/nextpage_small_grey.jpg
http/1.1”
500
59
在python安装目录中的lib/site包装中添加文件sitecustomize.py,找到解决方案的密钥错误文件mimetypes.py.py。
进口
系统
sys.setdefaultencoding(“ CP1251”)
我设置的编码格式是UTF-8,我不知道其他格式是否可以。Restart操作和成功。
编辑设置:
Media_root和Media_url表示用户上传的文件。它可以理解为存储可变文件的文件夹。
这两个参数的用途是什么?
在诸如Django的FileField和ImageField之类的模型类中,有upload_to参数可供选择。
上传文件后,它将自动保存到:OS.Path.join(Media_root,upload_to)。在此示例中
Media_url表示用户可以通过可以访问的URL访问这些上传的文件资源。
在此示例中,该计算机的地址为:
然后通过:文件名可以访问相关的上传图片或其他文件。
static_root和static_url是网站上使用的静态图片,CSS,JS和其他文件的保存地址。可以理解,网站操作期间将不再更改文件的文件夹删除或添加)
static_url,类似于Media_url;当setter_url为“/static/”时,通过:文件名可以访问相关的静态文件。
static_root是一个相对特殊的文件夹。这是Django的开发模型与部署模型最不同的地方。
通常,在开发模式下,我们可以在我们的项目下建立相应的应用程序,然后在每个应用程序下设置相应的静态文件夹。在DEBUG = true中,Django将自动为我们找到这些静态文件(每个应用程序)并在WebPage.ever,在部署模式下,Django认为这些任务更有效地由Web服务器运行。
因此,部署时,我们需要运行:
此命令将将每个应用程序中的文件复制到静态目录的文件为static_root文件夹。
如果在部署模式下,(debug = false)访问相关的网页(例如:文件名,将无法访问django下的每个应用程序中的静态文件夹,而是在static_root中指定的文件夹。
为了在部署模式下正确使用它,我们还需要将以下内容添加到URLS.PY:
这相当于在“静态”开头的链接时告诉如何处理Django。
理解上述内容后,让我们在前端显示图片。
编写显示视图功能以传递动态图片:
然后写show.html:
结论:以上是首席CTO的全部内容指出,Django如何通过静态网页和Django生成静态页面。我希望这对每个人都会有所帮助。如果您仍然想进一步了解这一点,请记住收集并遵循书柜。