Django入门步骤的具体实现方法Django部分React部分Django和ReactDjango的初始化配置静态文件引用文章的集成
序
本系列以django为后端框架,集成了前端框架react。 完成网站的构建。 数据库无关紧要。
具体的实现方法是分别创建和集成前后端项目。
Django部分http://www.Sina.com/: $ Django-adminstartprojectserver生成的django RSC项目包括数据库配置、django配置和APP应用程序创建后,目录如下:
管理server/manage.py——django项目的命令行工具server/——包含项目(用于引用内部任何内容的python包名称_ init _.py settings.py —— django配置文件urls.py——url声明(网站目录area . py33554 I:ASGI是Django团队提出的具有异步功能的Python web服务器网关接口协议。 它可以处理多种类型的通用协议,包括HTTP、HTTP2和web套接字。 WSGI基于HTTP协议模式,不支持web套接字。 简而言之,ASGI与WSGI标准向后兼容。 )
打开33558www.Sina.com/cmd命令提示符,然后键入:
$ python manage.py runserver可以通过创建一个django项目访问项目
缺省情况下,runserver命令将服务器配置为接收本地内部IP的8000端口。 如果要更换服务器的监听端口,请使用命令行参数。 以下命令使用服务器监听8080端口。
$ python manage.py runserver 8080 react部分启动Django本地调试环境
使用以下命令创建名为app的app应用程序app :
我们的项目是服务器,app应用程序是app。 项目具有多个APP应用程序,而APP应用程序可用于多个项目。 $ django-adminstartappapp http://www.Sina.com/$ NPM install-g creat-react-app http://ww.Sina.com /
搭好脚手架搭建项目,安装相关依赖
$ creat-react-app前端生成目录如下:
http://localhost:8000$ npm run start上的默认监听端口为3000。 可以在新建app上访问项目
全局安装React脚手架
添加其他前端依赖项、配置静态资源、创建新组件等。 将Django和React集成到新的空文件目录“Django测试”
将djangorsc和frontend项目都移动到django测试目录中。
搭建React项目
设置Django初始化项目的初始化设置。
启动React本地调试环境
settings.py是django APP应用程序的性能分析,站点的所有配置都可以在此文件中进行。 从Django-admin.py生成django项目时,将自动生成此文件。
Django提供了基本配置,如INSTALLED_APPS和MIDDLEWARE_CLASSES。 一般来说,在创建APP应用程序时,语言时区静态目录位置模板文件存储路径配置静态文件#staticfiles(CSS,JavaScript, images (# https://docs.django project.com/en/3.1/how to/static-files/static _ URL='/static/' static _ root ) 以下不是必需的static files _ dirs=[ OS.path.join (OS.path.join ) base_dir,'
部署静态文件(python manage.py collectstatic )时,请绝对写入聚合所有静态文件的目录
对地址,比如此项目:djangotest,那么STATIC_ROOT:P:djangocollect_static在终端输入:python manage.py collectstatic
django会把所有的static文件复制到STATIC_ROOT文件夹下
STATICFILES_DIRS
Django会从STATICFILES_DIRS中寻找静态文件。实际情况下,静态文件一般安放位置有两种:
在每个app中新建一个static文件,将静态文件放在里面。在加载静态文件时,比如模板需要用到静态文件,django会自动在每个app里搜索static文件夹;在所有app文件的外面,建立一个公共文件夹。因为有些静态文件夹不是某个app独有的,那么就可以把它放到公共文件夹中。方便管理。但这不是必须的,因为app是可以跨app应用静态文件的,最后所有的静态文件都会在STATIC_ROOT里面存在。如何让django知道你把一些静态文件,放到app以外的公共文件夹中呢?需要配置STATICFILES_DIRS:
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'),)上面的意思是,告诉django首先到STATICFILES_DIRS中寻找静态文件,其次再到各个app的static文件夹里面找。django查找静态文件是惰性查找,找到第一个,就停止查找了
STATIC_URL我们脱离django框架,在本地直接运行index.html时,会默认调用与index.html在同一目录下的静态文件。但是,当我们通过浏览器访问站点的方式去访问时,请求会自动改成:’‘http://localhost/staticfiles…",但此url定位是没有任何本地文件的,所以会报错。
比如,我的一张图片本地地址为:
/static/logo512.png
但是浏览器直接输入:http://127.0.0.1:8000/static/logo512.png
会直接报错,没有该页面。
所以直接访问服务器本地地址是不行的,需要一个映射,django就是利用STATIC_URL来让浏览器可以直接访问静态文件。
比如:STATIC_URL = '/static/'
那么在浏览器输入:http://127.0.0.1:8000/static/logo512.png
就可以直接访问本地/static/logo512.png。
也就是说,利用前缀STATIC_URL的具体内容,来映射STATIC_ROOT。
http://127.0.0.1:8000/static相当于本地地址的STATIC_ROOT
参考文章[1] https://blog.csdn.net/No_red/article/details/79661176
[2] https://blog.csdn.net/u013967628/article/details/83350741