Django基础配置(app、template、url、图片、构造上下文)

本文介绍了如何使用Django创建项目,包括app的创建、配置文件的设置(如apps、templates、static和url)、子路由的组织以及媒体文件的管理。通过一步步详解,帮助读者快速上手Django框架。
摘要由CSDN通过智能技术生成

Django立项

Django下载

在虚拟环境中安装
创建虚拟环境:https://blog.csdn.net/qq_48082548/article/details/120136668

pip install Django==2.1.2
在这里插入图片描述

使用命令创建Django项目

创建项目命令:

选择项目要保存的的位置, 使用命令创建项目:
在这里插入图片描述

django-admin startproject Django01

创建app文件夹:

创建app文件夹有两种方式第一种是使用命令提示窗口来进行创建第二种是使用pycharm来进行创建
命令提示窗口创建:
命令:

python manage.py startapp app01(app名称)

注意 创建app文件夹需要在于manage.py同级目录
在这里插入图片描述

使用pycharm创建:

创建好项目后也可以使用这个来创建
在这里插入图片描述

startapp app名

创建好后需要在settings的INSTALLED_APPS中添加
在这里插入图片描述

app名字

使用命令创建的项目需要手动添加team plates

文件的作用

在这里插入图片描述
在这里插入图片描述

Django相关配置

apps配置

这样配置在settings添加app的时候就方便很多
1eba820bb67.png)

sys.path.insert(0,os.path.join(BASE_DIR,"apps"))

在settings中添加app
这样就很方便的添加app应用

template配置

在这里插入图片描述

'DIRS': [os.path.join(BASE_DIR, "templates")],

static配置

django的static可以放在两种地方:
第一种就是放在app下
第二种就是在当前项目目录下
在这里插入图片描述
第一种需要settings这两个参数为True才能使用
在这里插入图片描述
第二种当前项目目录下需要自己创建一个static目录然后在settings中配置
在这里插入图片描述

STATICFILES_DIRS=[
    os.path.join(BASE_DIR,"static")
]

在前端文件中访问静态文件的地址使用:

在每个要访问静态文件html中添加:
{% load staticfiles %}
在把要访问的地址修改为:
{% static 'js/jquery.min.js' %}
例如:
<script src="{% static 'js/jquery.min.js' %}" type="text/javascript"></script>

url配置

如果只返回前端文件,不创建view可以这么配置:

path('', TemplateView.as_view(template_name="html/index.html"),name='index'),

还有一种配置就是:
通过视图.as_view()

   path('login/', LoginView.as_view(),name='login'),

还有一种url配置需要使用include,还需要创建在app下创建urls文件
这种配置呢适合这种比如:user/list,user/index,user/login,他们前面都要地址都是user开头
就能使用这种配置
首先需要创建好视图,然后再相应的app下创建urls文件:配置路由

urlpatterns = [

    url("^list/$", OrgListView.as_view(), name="list"),
    url("^index/$", OrgIndexView.as_view(), name="index"),
]

然后再项目中的urls文件中去指定一下就可以了

#apps.organizations.urls:需要指定的urls
#organizations:app的名称

 url("^org/", include(('apps.organizations.urls','organizations'),namespace="org")),

这样路由就是 服务器域名/org/list
前后端不分离如何指定:
在html中使用

{% url 'org:list' %}

子路由的相关配置

子路由是为进一步提升模块可维护性,使用子路由只是改善了urls.py中所有路由放在一起的混乱状况。

  1. 在相应的app下创建urls.py文件
  2. 在项目的urls.py中将子路由进行配置(当访问org时就会访问apps.organizations.urls的路由)
urlpatterns = [
    url("^org/", include(('apps.organizations.urls','organizations'),namespace="org")),
]
  1. 子路由配置的两种方法
urlpatterns = [
	url("^list/$", OrgListView.as_view(), name="list"),
	
	#如果需要获得地址里的参数可以使用这两种方法解决,视图需要接收ord_id参数
    url("^(?P<ord_id>\d+)/$", OrgDetailView.as_view(), name="home"),
    path("<int:ord_id>/", OrgDetailView.as_view(), name="home"),
]

  1. 视图
class OrgDetailView(View):
    def get(self,request,ord_id,*args,**kwargs):
    	 return render(request,"html/org-detail-homepage.html")
  1. 前端如何使用url来指定子路由
{% url 'org:home'  %}

前端中如何子路由传参

{% url 'org:home' 参数值 %}

图片配置

首先在项目更目录下创建一个media文件夹

model配置

#存放在courses下的年份文件夹下的月文件下
image=models.ImageField(upload_to="courses/%Y/%m", verbose_name="封面图", max_length=100)

settings中配置

#访问图片地址
MEDIA_URL="/media/"
#保存图片地址
MEDIA_ROOT=os.path.join(BASE_DIR,"media")

url中配置

 url("^media/(?P<path>).*$",'django.views.static.serve',
        {'document_root': settings.MEDIA_ROOT}),

这样图片就能保存在media文件夹中了,那我们如何取出来呢
在这里插入图片描述

在数据库中可以看到图片的地址只需要加上服务器的地址/media/数据库保存的地址就能访问了,那么在前端中如何展示?
这样是能访问但是不利于后期维护,还有一个将media设置前端页面都能访问的办法那就是构造上下文

<img width="200" height="120" class="scrollLoading" data-url="media/{{ org.image }}"/>

构造上下文

他的作用就是不用view传值前端也能访问后台的变量,用media举例
在settings中配置:
在这里插入图片描述

<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>

这样就解决了不传值也能接却图片地址问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值