Django项目教程(一、项目建立和环境配置)

前后端分离的优势

  • 后端代码可以复用。
  • 代码逻辑清晰,指责解耦。

安装

如果没有安装Django,先需要通过pip安装Django:

pip3 install django

安装完成后,可以在Python环境中调用以下代码查看Django版本:

>>> import django
>>> django.get_version()
'3.1.7'

我们目前使用的是3.1.7这个版本。

创建项目目录

开始开发一个项目的第一步,是使用Django自带的命令创建一个Django项目:

django-admin startproject mysite<文件目录名称>

得到目录中的文件如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

我们继续在manage.py同一目录下新建log、media、static、templates等目录,最终我们得到的目录如下:

mysite/
    log/
    media/
    static/
    templates/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

以下是这些目录和文件的用处是:

  • 最外层的mysite 根目录:是整个项目的容器,它可以重命名为任何名字。
  • log目录:存放项目日志的文件夹。
  • media目录:存放用户上传文件的文件夹。
  • static目录:存放css、js、image等静态文件的文件夹。
  • templates目录:存放html文件的文件夹。
  • manage.py:是一个管理 Django 项目的命令行工具。
  • 里面一层的 mysite目录:是一个纯 Python 包,里面包含整个项目的代码。
  • mysite/__init__.py:是一个空文件,告诉 Python 这个目录应该被认为是一个Python 包。
  • mysite/settings.py:是Django 项目的配置文件。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。
  • mysite/wsgi.py:作为项目的运行在 WSGI 兼容的Web服务器上的入口。

到了这一步,可以在manage.py同一目录下执行以下命令,用于测试Django项目是否真的创建成功:

python3 manage.py runserver

设置项目templates路径

在我们新建了templates目录以后,我们还需要在settings.py中指定项目templates的路径:

import os
...
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静态文件管理

1、STATIC_ROOT

STATIC_ROOT 是在部署静态文件时(即使用pyhton manage.py collectstatic命令时)所有的静态文静聚合的目录,django会把所有的static文件都复制到该目录下。

2、STATICFILES_DIRS

STATIC_ROOT 一般是在部署的时候才发挥作用, 而在实际开发过程中,静态文件的一般安放在以下两处:

  • 一是在每个app目录下对应的static文件夹中,所以在html文件中用到静态文件时,django会自动先在每个app目录下搜索static文件夹,所以static目录名称不要随便写,以保证django能顺利找到。

  • 还有一处,就是在所有的app目录之外,建立一个共用的文件夹,这个文件夹的目录就是通过STATICFILES_DIRS来指定,当然这种做法不是必须的。

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'common_static')
]

STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找(注意, django查找静态文件是惰性查找,查找到第一个,就停止查找了)。

3、STATIC_URL

这个变量定义的是我们在浏览器中访问静态文件时,URL中资源路径开头那段的内容,默认是'static',所以部署中的网页,浏览器访问静态资源的URL都是:

http://xxx.xxx.xxx.xxx:xxxx/static/...

注意:这个STATIC_URL部分实际映射的路径相当于STATIC_ROOT指定的路径。

后台数据库设置

Django后台数据库的连接信息,我们需要在settings.py中指定:

...
DATABASES = {
    'default': {
        'ENGINE':'django.db.backends.mysql',
        'NAME':'testdjango',
        'USER':'root',
        'PASSWORD':'root',
        'HOST':'127.0.0.1'
    }
}
...

同步后台数据信息

现在可以执行以下两行命令,将项目的管理信息同步到后台数据库了:

python3 manage.py makemigrations
python3 manage.py migrate

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,082评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,231评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,047评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,977评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,893评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,976评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,605评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,888评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,906评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,732评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,513评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,980评论 3 301
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,132评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,447评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,027评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,232评论 2 339

推荐阅读更多精彩内容