model中的一些处理
1、setting.py中设置
主要有三个地方需要设置:
MEDIA_URL = ‘/media/’,设置该路径为了在模板中定位图片的位置,<img src="{{ MEDIA_URL }}{{ user.image }}"/> 这样便可以从浏览器中得到头像的url地址,从而显示出来
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media’) , 设置该路径是为了将新建的‘media’添加到根搜索路径下,这样在建立用户模型时的image = models.ImageField(max_length=100, upload_to='users/image/%Y/%m', , upload_to 指定的是相对闻之,通过设定MEDIA_ROOT,便可以将头像存储在:127.0.0.1:8000/meida/user/image/%Y/%m,目录下了。
的上下文管理器,添加media进来,如果不添加的话,模板中的{{ MEDIA_URL }}会找不到地址的。
设置TEMPLATES中
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media',
],
},
},
]
2、配置url
因为浏览器中显示图片,会从如下地址中寻找:127.0.0.1:8000/meida/user/image/%Y/%m , 如果不配置media的url地址的话,该图片是无法被找到的。配置方法如下:
from django.conf.urls import url
from django.views.static import serve from mxonline3.settings import MEDIA_ROOT urlpatterns = [ #配置上传文件的访问处理函数
url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}), ]
djangoueditor配置
1、将djangoueditor添加到setting.py中
INSTALLED_APPS = [
...
'DjangoUeditor',
]
2、添加url
将URL添加到urlpatterns中去:
#富文本编辑器
url(r'^ueditor/',include('DjangoUeditor.urls' )),
3、修改model
将模型中需要改为富文本添加的字段,一般为TextField,改为如下:
detail = UEditorField(verbose_name='课程详情',width=600, height=300, toolbars="full", imagePath="course/ueditor/", filePath="course/ueditor/", upload_settings={"imageMaxSize":1204000},default='')
settings中关于static静态文件目录的设置
django项目settings中关于静态资源存放位置的设置
主要涉及以下3项:STATIC_URL、STATICFILES_DIR和STATIC_ROOT
1、STATIC_URL
这项是必须配置的,而且属性值不能为空。默认值是STATIC_URL = '/static/'。
如果STATICFILES_DIR没有设置,则只能识别app中static文件夹下的静态资源。即:只能通过https://127.0.0.1:8000/static/1.jpg访问,且static文件夹是放在app中的。 app中静态文件夹名称必须是static,即STATIC_URL属性的值。如果写其他名称,则不能访问。 STATIC_URL的值,表示访问静态资源的起始url,如:https://127.0.0.1:8000/static/...... 如果直接把static文件夹放在项目根目录下,通过上面的网址是不能访问的,除非设置STATICFILES_DIR。
2、STATICFILES_DIR
如果想在项目的根目录下存放静态资源,则需要设置STATICFILES_DIRS属性。该属性的值是列表或元组格式,每个列表(元组)元素代表一个静态资源文件夹,这些文件夹可以自行命名,不必非得是static。
如:在项目根目录下建立文件夹public_static,里面放置图片1.jpg,在app(index)中建立文件夹index_static,里面放置2.jpg,都用于存放静态文件。 则配置:STATICFILES_DIRS = [os.path.join(BASE_DIR, 'public_static'),os.path.join(BASE_DIR, 'index/index_static'),] 访问静态文件的路径是:https://127.0.0.1:8000/static/1.jpg;https://127.0.0.1:8000/static/2.jpg.
综上可见,访问静态资源的路径(起始路径)由STATIC_URL的属性值决定,如果静态文件夹中还有别的文件夹(如test),访问时的路径则是https://127.0.0.1:8000/static/test/1.jpg
3、STATIC_ROOT
它的作用主要是收集整个项目的静态资源,并存放在一个新的文件夹,然后由该文件夹与服务器之间构建映射关系。
STATIC_ROOT配置如下:STATIC_ROOT = os.path.join(BASE_DIR, 'all_static')
model中的一些处理的更多相关文章
- tp5 model 中的查询范围(scope)
查询范围scope在model中定义,在controller中使用 namespace app\index\model; use think\Model; class User extends Mod ...
- tp5 model 中的软删除
model中需use traits\model\SoftDelete; // 数据表中需添加一个 delete_time 字段保存删除时间 namespace app\index\model; use ...
- 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...
- Django model 中meta options
之前学了abstract,这是后续的一些options app_label: app_label的作用是:如果一个model定义不在INSTALLED_APPS中,那么此时就需要声明,这个model的 ...
- Django model 中meta options之 abstract
当abstract=True时,这个model就变成了abstrct base class,那这个基类有什么特性呢? 当某一model中设置了abstract=True时,就会使该model中的字段都 ...
- CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写
Q: CI中的控制器中要用model中的方法,是统一写在构造器方法中,还是在每一个方法中分别写 A: 建议统一写,CI框架会自动识别已经加载过的类,所以不用担心重复加载的问题 class C_User ...
- Django文档——Model中的ForeignKey,ManyToManyField与OneToOneField
关联关系字段 (Relationship fields) ForeignKey,ManyToManyField与OneToOneField分别在Model中定义多对一,多对多,一对一关系. 例如,一本 ...
- Django model中 双向关联问题,求帮助
Django model中 双向关联问题,求帮助 - 开源中国社区 Django model中 双向关联问题,求帮助
- [Tips]ASP.NET MVC 发布到服务器后Model中属性相关的Attribute失效
Asp.net MVC4 开发的项目,发布到真实环境环境后Model中的一个属性设置的了Attribute,但是这些Attribute都失效. 经过对比和坚持代码发现控制长度的Attribute使用错 ...
- Django的model中日期字段设置默认值的问题
之前写过这样一个model: class MonthlyFeeMember(models.Model): worker = models.ForeignKey(Student, verbose_nam ...
随机推荐
- (二)surging 微服务框架使用系列之surging 的准备工作consul安装
suging 的注册中心支持consul跟zookeeper.因为consul跟zookeeper的配置都差不多,所以只是consul的配置 consul下载地址:https://www.consul ...
- 浅谈基于Intellij IDEA Maven的配置与使用
在java开发中,引入jar包的方式从种类上划分,可分为自动导入和手动导入,然而,手动导入繁琐,不是很适合当前开发模式,手动导入也被自动导入所取代. 当前,Maven和Gradle是比较主流的自动导入 ...
- Java虚拟机垃圾收集算法
1.标记-清除算法 标记-清除算法分为 "标记" 和 "清除" 两个步骤:首先标记出所有需要回收的对象,然后在标记完成后统一回收所有被标记的对象,是垃圾收集算法 ...
- asp.net Core HttpClient 出现Cannot access a disposed object. Object name: 'SocketsHttpHandler' 的问题。
ASP.NET Core 部署在Centos 中 偶尔出现 One or more errors occurred. (Cannot access a disposed object.Object n ...
- 零基础学Python--------第10章 文件及目录操作
第10章 文件及目录操作 10.1 基本文件操作 在Python中,内置了文件(File)对象.在使用文件对象时,首先需要通过内置的open() 方法创建一个文件对象,然后通过对象提供的方法进行一些基 ...
- Android自定义控件实例,圆形头像(图库 + 裁剪+设置),上传头像显示为圆形,附源码
Android项目开发中经常会遇见需要实现圆角或者圆形的图片功能,如果仅仅使用系统自带的ImageView控件显然无法实现此功能,所以通过系列文章的形式由简到繁全方位的介绍一下此功能的实现,巩固一下自 ...
- 荣耀7.0系统手机最简单激活Xposed框架的步骤
对于喜欢玩手机的小伙伴来说,很多时候会使用到Xposed框架及各类功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得Root权限,安装和激活Xposed框架是比较简便的,但随着系统版本的不断更新 ...
- C#零基础入门-2-Visual Studio (VS)程序初始化及各组成部分
X:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe 可以使用桌面快捷方式启动,也可以从开始菜单启动,还 ...
- row_number() over()分页查询
1.首先讲下row_number() over() 是干什么的? 是一个分析函数,会在数据表生成一个排序列. 案例SQL: select ROW_NUMBER() over(order by book ...
- Go 反射
基本了解 在Go语言中,大多数时候值/类型/函数非常直接,要的话,定义一个.你想要个Struct type Foo struct { A int B string } 你想要一个值,你定义出来 var ...