什么是django
django是用python语言写的一个web框架。web框架的作用有以下几点:
减少重复的繁琐的工作,web开发中有很多重复的没有技术含量的工作,web工作可以将这些工作封装好,或者自动化实现
提供标准与规范,便于开发人员合作。如果不用web框架,每个开发人员的代码风格都不一致,增加很大的沟通成本
提供了更加安全健壮的底层架构,即使是初入门的程序员,只要按照框架的规范开发,也能快速完成一个不错的成品
以建房子为比喻,如果每个建筑工都以自己的想法去建,而且要负责所有的流程,包括打地基,建柱子,垒砖头等。这种造出来的房子肯定是又丑又不坚固。如果这个房子的地基已经打好了,基本的架构都弄好了,材料也都提供好了,建筑工只需要按照规范在这个基础上加砖头,即使是刚出道的小工,也能胜任。
总之,框架的作用就是让我们把事情做得又快又好。
django当前(2018年9月)的最新版本是2.1.1,网上的很多教程还是旧的1.8版本,此版本官方已经不再提供支持了
本实战教程使用的是django2.1.1版本,从零开始讲解django的使用,并且每篇都是实例,希望能让新手从入门到实战,而不是从入门到放弃...
环境安装
我使用的python版本是3.6.6
推荐使用pyenv安装对应的版本,详情查看 为python版本抓狂,试下pyenv吧
准备工作:
☁ python pip install --upgrade pip # 升级pip
☁ python pip install ipython # 安装ipython
指定安装2.1.1版本
☁ python pip install django==2.1.1
验证安装
☁ python ipython
Python 3.6.6 (default, Sep 5 2018, 08:57:22)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import django
In [2]: django.get_version()
Out[2]: '2.1.1'
创建第一个项目
开始创建我们的第一个项目,项目名为mysite
☁ python django-admin startproject mysite
☁ python tree mysite
mysite
├── manage.py
└── mysite
├── __init__.py # 空文件,告知python将mysite目录作为一个python模块
├── settings.py # 项目的配置文件
├── urls.py # url配置文件,指定url与view层的映射关系
└── wsgi.py # web服务器网关接口,定义了web服务器如何与python应用程序交互
1 directory, 5 files
配置文件settings.py中,默认指定了注册的应用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
以上这些应用对数据库是有依赖的,默认使用的是SQLITE3数据库,需要先执行数据迁移生成相应的数据
☁ mysite python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
启动开发服务器
数据库初始完成后,便可启动django自带的web服务器
☁ mysite python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
September 05, 2018 - 02:49:00
Django version 2.1.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
浏览器访问:http://127.0.0.1:8000/
终端按 ctrl+c 关闭web服务器
终端会实时打印出所有的访问记录
默认的端口是8000, 我们也可以自定义端口
☁ mysite python manage.py runserver 127.0.0.1:8001 # 指定为8001端口
项目配置文件
settings.py的部分配置项说明:
DEBUG = True # 调试模式,默认是开启状态。当应用运行出错时,会抛出详细的错误信息。调试模式只能在开发环境开启。切忌在生产环境开启,会暴露应用的敏感信息,除非你不想要饭碗了...
INSTALLED_APPS # 告知Django哪些应用处于开启状态,我们新增应用时,需要在该配置项增加应用名称
MIDDLEWARE # 中间件
ROOT_URLCONF # 项目url的配置路径
DATABASES # 数据库配置信息,默认是sqlite3
LANGUAGE_CODE # 默认语言
USE_TZ # 开启时区
关于项目文件的更多详情,查看官方文档介绍
小结
本节介绍了django的安装,目录结构,创建项目, 配置文件。有些看不懂并没关系,新接触一个知识点,不能奢求一下子就能了解各个细节,先大致有个概念,跟着教程操作。学多几节后再回头看,就会有柳暗花明又一村的体验。
下一节将讲解如何创建一个django应用。如果你感兴趣,请关注我的django2实战
文集
如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你的认可对我很重要