setting-url配置
参考: diango1
一. mvc和mvt模式
著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。
模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。
Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
二. django的流程和命令行工具
django
#安装: pip3 install django 添加环境变量 #1 创建project
django-admin startproject mysite ---mysite ---settings.py
---url.py
---wsgi.py ---- manage.py(启动文件) #2 创建APP
python mannage.py startapp app01 #3 settings配置 TEMPLATES STATICFILES_DIRS=(
os.path.join(BASE_DIR,"statics"),
) STATIC_URL = '/static/'
# 我们只能用 STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找#4 根据需求设计代码
url.py
view.py #5 使用模版
return render(req,"index.html") 或者
return HttpResponse(req) #这个一般用来测试 #6 启动项目
python manage.py runserver 8090 #7 连接数据库,操作数据
model.py
三. setting
1. 模版文件,静态文件一般放在 项目目录下,与 app同级。但更好的是放在相应的app下
[root@chehce GS_CMDB]# pwd
/opt/gs_cpa/devops/GS_CMDB #项目目录
[root@chehce GS_CMDB]# ls -alh
total 12K
drwxr-xr-x 6 root root 119 May 25 16:38 .
drwxr-xr-x 6 root root 67 May 25 10:31 ..
drwxr-xr-x 3 root root 123 May 25 15:54 CMDB #一个app目录
-rw-r--r-- 1 root root 3.0K May 25 10:34 db.sqlite3
drwxr-xr-x 2 root root 146 May 25 15:44 GS_CMDB
-rwxr-xr-x 1 root root 805 May 25 10:31 manage.py
drwxr-xr-x 2 root root 6 May 25 16:38 static #静态文件目录
drwxr-xr-x 2 root root 6 May 25 16:38 templates #html文件目录
-rw-r--r-- 1 root root 2.0K May 25 15:44 设计文档
setting中配置如下:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], #这点配置模版目录
'APP_DIRS': True, #下面是static的配置,注意后面的逗号 STATIC_URL = '/static/' #自带,相当于给下面的路径取了个别名. #自己添加
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
前端引用
#注意1: 方法1
#为了后端的更改不会影响前端的引入,避免造成前端大量修改 STATIC_URL = '/static/' #引用名
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"statics") #实际名 ,即实际文件夹的名字
) #django对引用名和实际名进行映射,引用时,只能按照引用名来,不能按实际名去找
#<script src="/statics/jquery-3.1.1.js"></script>
#------error-----不能直接用,必须用STATIC_URL = '/static/':
#<script src="/static/jquery-3.1.1.js"></script> #注意2(statics文件夹写在不同的app下,静态文件的调用):方法2 STATIC_URL = '/static/' STATICFILES_DIRS=(
(os.path.join(BASE_DIR,"app01","statics")) ,
) #<script src="/static/hello/jquery-1.8.2.min.js"></script> #注意3:方法3 推荐
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"statics")
) #前端文件需要加的
{% load staticfiles %}
<script src={% static "jquery-1.8.2.min.js" %}></script>
4.url
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
参数说明:
- 一个正则表达式字符串
- 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
- 可选的要传递给视图函数的默认参数(字典形式)
- 一个可选的name参数
url 举例: 几个url可以对应同一个视图,但是逻辑不要乱
from django.conf.urls import url
from django.contrib import admin from app01 import views urlpatterns = [ #固定的url,固定匹配,无法传参数
url(r'^articles/2003/$', views.special_case_2003), #更灵活的正则匹配url,无法传参数
url(r'^articles/[0-9]{4}/$', views.year_archive), # 加上小括号,分组的url,可以传参数,view中可以用任意对应个数的参数接收。
url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), #分组并且命名的url,可以传参,并且是以键值对的方式,view中接收参数要跟url中一样。
url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive), #在带一个参数,Django will call views.year_archive(request, year='2005',foo='bar') url(r'^blog/(?P<year>[0-9]{4})/$', views.year_archive, {'foo': 'bar'}), ]
include other url:
from django.conf.urls import include, url urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]
5. 遇到的一些问题:
1. "GET /static/admin/css/base.css HTTP/1.1" 404 99 提示找不到admin相关静态文件。
STATIC_URL = '/static/' STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
) 检查设置是正常的, 原来是DEBUG=False引起的, 改为DEBUG=True
setting-url配置的更多相关文章
- 视图和URL配置
视图和URL配置 实验简介 上一章里我们介绍了如何创建一个Django项目并启动Django的开发服务器.本章你将学到用Django创建动态网页的基本知识. 同时,也教会大家怎么在本地机器上建立一个独 ...
- python测试开发django-3.url配置
前言 我们在浏览器访问一个网页是通过url地址去访问的,django管理url配置是在urls.py文件.当一个页面数据很多时候,通过会有翻页的情况,那么页数是不固定的,如:page=1.也就是url ...
- $Django setting.py配置 ,GET、POST深入理解,三件套,orm对象关系映射简介
1 django中app的概念: 大学:----------------- 项目 信息学院 ----------app01 物理学院-----------app02 ****强调***:创建的每一 ...
- 测试开发之Django——No8.Django中的视图与URL配置
在Django中,页面内容是靠views function(视图函数)来产生,URL定义在URLconf中. 这是一个纯净项目的url配置文件,他存在的目录,是与setting文件在同一个目录中. u ...
- Django之视图和URL配置
1.在创建项目时,Django会自动创建URL配置,在urls.py文件中 文件的默认内容如下所示: """mysite URL Configuration The ur ...
- Django框架1——视图和URL配置
三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django- ...
- django url配置-反向解析-视图函数-HttpRequest对象-HttpResponse对象-cookies-session-redis缓存session
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,50 ...
- atitit.spring3 mvc url配置最佳实践
atitit.spring3 mvc url配置最佳实践 1. Url-pattern bp 1 2. 通用星号url pattern的问题 1 3. Other code 1 4. 参考 2 1. ...
- 微信支付开发(1) 微信支付URL配置
由于微信支付接口更新,本文档已过期,请查看新版微信支付教程.地址 http://www.cnblogs.com/txw1958/category/624506.html 本文介绍微信支付申请时如何设置 ...
- 微信支付开发1 微信支付URL配置
本文介绍微信支付申请时如何设置授权目录及URL. 一.选择支付类型 目前有两种支付类型 JS API网页支付 Native原生支付 如果没有特殊要求,两种都勾选. 二.支付授权目录 目前可以选择htt ...
随机推荐
- java使用RunTime调用windows命令行
当Java需要调用windows系统进行交互时,可以使用Runtime进行操作. 例子: 1.调用window中获取关于java相关的进行信息 Runtime rt = Runtime.getRunt ...
- RocketMQ实战快速入门
转自:https://www.jianshu.com/p/824066d70da8 一.RocketMQ 是什么 Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延 ...
- 大数据mapreduce二分法ip定位之Python实现
ip定位数据大约12M,采用-chacheFile 分发 文件来源https://pan.baidu.com/s/1J0pwTafHgt4T0k3vV_gC-A 格式大致格式如下: 0.0.0.0 0 ...
- Cropper.js使用笔记
官网:https://fengyuanchen.github.io/cropperjs/ github:https://github.com/fengyuanchen/cropperjs 由于文档不好 ...
- DataGridView中进行增删改查
首先我们需要知道是在哪个数据库中的哪个表进行增删改查: 这就需要我们: 建立给连接服务器的类:(可以在方法类中建立) 建立一个对列名进行封装的类:方便数据之间的传接:(学到Linq-sql时这些就简便 ...
- Oracle Blob查询和插入
注:本文来源于<Oracle Blob查询和插入> 插入 UPDATE cmm05 SET OUTFILE = to_blob('12345690'): 查询: SELECT utl_ra ...
- Oracle 数据库架构
Oracle 数据库架构 查看数据库在linux系统的安装目录路径情况: [root@localhost ~]# cd /u01/app/oracle/oradata/orcl/ [root@loca ...
- Confluence 6 管理协同编辑 - 审计的考虑
我们知道一些客户对审计是主要考虑的方面.我们不能保证在协同编辑的时候具有审计,审查功能.所有页面的修改当前附加到用户发布页面的属性中而不是用户的特定修改. 如果这个对你来说是一个问题的话,我们建议你在 ...
- Confluence 6 PostgreSQL 设置准备
请查看 Supported Platforms 页面来获得 Confluence 系统支持的 PostgreSQL 数据库版本.你需要在安装 Confluence 之前升级你的 PostgreSQL ...
- day 08字符编码 文件处理
字符编码1.软件启动流程(打开notepad++文档)从硬盘将软件加载到内存上加载test.txt到内存中执行notepad++的代码,将test.txt打到屏幕上 python解释器也是一个应用软件 ...