Django1.8学习笔记总结(基础+settings)

跟上一篇一样,这篇笔记也是以凌乱的txt存在我的电脑中,因为做了好多个项目一点一点地添加,原版有点乱,故总结之.

一.文件梳理

mtv:models-templates-views
一般创建一个Django项目后并新建应用后,项目中会有两个文件夹,一个与项目同名,一个是应用文件夹.如果有多个应用,会有多个应用文件夹.
与项目同名的文件夹下的文件有:

__init__.py   //每一个文件夹要成为项目的package必须有这个文件,一般是个空文件
urls.py  //用于定义链接来连接views.py中的方法与templates文件夹中的页面
settings.py  //用于整个项目的设置
wsgi.py  //控件相关(不知道正确的翻译),需要把django布置到服务器如Apache时就会用到它,目前我少用

应用的文件夹下的文件有:

models.py  //模型层, 每一个class都是数据库里的一个表,继承models.Model类,
admin.py  //Django自带的管理系统,model们需要在这里注册(register)才能被管理
tests.py  //用于测试项目
views.py  //视图层,用于定义显示页面时被调用的处理业务逻辑的函数

另外还有一个templates文件夹,这是表现层,一般html都放在此处.

一般习惯会再新建一个static文件夹,用于存放js, img, css等所有前端所需的文件
个人习惯算法,爬虫另外单独分文件夹.另外我也喜欢在应用下新建一个myurls.py来放本来应该放urls.py中的链接(被人带坏的)

还有一个manage.py,用于运行Django项目的.
常用命令有(终端下):

python manage.py startapp blog  //创建名为blog的应用
python manage.py makemigrations  //写好models后第一次运行rumigrate前需要运行本句,在应用文件夹下会创建一个migration文件夹,与创建模型相关
python manage.py migrate  //同步数据库,简单来说就是创表,改表,删表等.到运行本句之前,model里写的东西都是不算数滴,运行后打开数据库就能看到改变啦
python manage.py runserver //开启后台,如果views,templates,urls写好了的话,此时已经可以开浏览器看到页面效果了
python manage.py runserver 0.0.0.0:8000  //0.0.0.0表示允许所有ip访问,否则默认只有本机可以访问;8000是端口
python manage.py collectstatic  //自动收集static文件
python manage.py createsuperuser  //创建可以登录admin的管理员
python manage.py findstatic Chrome.jpg  //查找指定的静态文件所在的目录
二,修改settings.py

这个文件很重要,所有项目的配置信息都在这里,如果这里没写好,其他文件里写的东西都是不算数的.比如:
明明写了templates居然说404?
网页图片全部都图裂?
数据库同步不了?
很多时候都是它的锅…

BASE_DIR: 这是整个django项目的路径,需要路径时直接用join方法连接它和项目内路径,会很方便,也可以避免绝对路径不方便项目移动的问题

INSTALLED_APPS:
就是已安装的应用,上面的startapp创建出来的blog就是一个.如果默认有两个django.contrib.admin,要去掉其中一个.要把自己新建的非同名文件夹名字放到这里

MIDDLEWARE_CLASSES: 一些项目相关的中间件(插件),比如安全认证相关的,sessiion相关的等等,一般不需要管,除了要注释掉’django.middleware.csrf.CsrfViewMiddleware’.(用不上功能又可能报错)

TEMPLATES: 让项目找到你放模板的文件夹.dirs就是模板文件夹的路径.默认’DIRS’是空,要改成:os.path.join(BASE_DIR, ‘文件夹路径’),否则找不到欧~

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

DATABASES:连接数据库的配置就需要改这里了,默认是sqlite,也可以使用其他数据库,写法不一样,详情看文档哈

LANGUAGE_CODE = 'en-us'  
TIME_ZONE = 'UTC'

以上是语言和时区,按需改

STATIC_URL = ‘/static/’ static的url. 当url为/static/xxx/时,会指定到staticfile处,在html,css,js中会有很多应用,比如:
<img src = "/static/img/1.jpg">
STATIC_ROOT = os.path.join(os.path.dirname(file), ‘..’, ‘all_static’).replace(‘\’,’/’)
指定static的根目录, 不可以与staticfiles_dir相同.
STATICFILES_DIRS:和TEMPLATE_DIRS的含义差不多,就是除了各个应用的static目录以外还需要管理的静态文件设置,
比如项目的公共文件差不多。然后给静态文件变量赋值,告诉Django,静态文件在哪里.就是告诉项目你的css,js,img文件都放在哪.以下就是指定static文件夹:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

默认情况下(如果没有修改STATICFILES_FINDERS的话),Django首先会在STATICFILES_DIRS配置的文件夹中寻找静态文件,然后再从每个应用的static子目录下查找,
并且返回找到的第一个文件。所以我们可以将全局的静态文件放在STATICFILES_DIRS配置的目录中,将app独有的静态文件放在app的static子目录中。
存放的时候按类别存放在static目录的子目录下,如图片都放在images文件夹中,所有的CSS都放在css文件夹中,所有的js文件都放在js文件夹中。

将应用中的静态文件添加到静态文件配置列表中:

STATICFILES_DIRS += MY_STATIC_DIRS

TEMPLATE_DIRS:需要管理的页面文件所在路径,参考staticfiles_dirs的一堆文哈

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR,  'templates'),
)

配置应用的模板文件路径

TEMPLATE_DIRS += MY_TEMPLATE_DIRS

(关于static和template的settings部分自己觉得理解的不算特别透彻,所以搬了下别人的解释.很多写法是有多个app时需要注意的,目前还没试过多app的django,有待以后继续研究)

参考:
http://www.bkjia.com/Pythonjc/983240.html(settings完整版)
static部分的参考忘记看过哪些文章的了,年代比较久远,sorry~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值