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')

原文地址:https://www.cnblogs.com/shangjunnihao/p/10675549.html