一.Django简介
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C
Django是一个基于MVC构造python的Web开发框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。
它们各自的职责如下:
1.模型(Model),即数据存取层
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
2.模板(Template),即表现层
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
3.视图(View),即业务逻辑层
存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。
从上可以看出Django 视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django 模板 仅仅决定如何展现Django视图指定的数据。或者说, Django将MVC中的视图进一步分解为 Django视图 和 Django模板两个部分,分别决定 “展现哪些数据” 和 “如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。
至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,你完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为我们程序员大都在写控制层的程序。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。
二.开发环境的搭建
由于我们在接触较多知识后,我们也要开始规范自己的写代码方式,即每次新建工程时,我们都要新建一个环境来写工程文件,如果用旧环境可能会发生冲突,带来一些不必要的麻烦。这里我以用anaconda为例。1.创建虚拟环境
conda create -n Django python==3.6
新建虚拟环境的位置:
2.激活虚拟环境
source activate Django
3.在虚拟环境内安装django
pip install django==1.10 ####django==1.10,指定了django的版本
4.新建工程
1).图形方式
我们可以用下列代码查看Django的版本
方式1:
`python -m django --version`
方式2:进入虚拟环境,打开python,用下图方式查询
用tree+工程名查看工程树状图,下图是我用pycharm 专业版新建的Django工程的树状图。我们会发现其中有templates目录,且在settings文件中,对于‘TEMPLATES’中的‘DIRS’做了明确的指示,即该到什么地方寻找html文件。这便是一个完整的工程。
其中,各部分的作用如下:
2).命令方式
我们用以下命令新建工程。 django-admin startproject Django1
新建完成后,我们会在内层目录的settings文件中发现‘TEMPLATES’中的‘DIRS’为空,所以我们一定在‘DIRS’中加上到何处去找文件,也就是上面用pycharm专业版建立工程时,DIRS中的内容。
注意:用pycharm 社区版以图形方式建立工程要执行和用命令建立一样的操作。
二.如何创建一个超级用户
1.首先进行 数据库相关设置
1)生成migrate文件,用于完成model.py与数据库的映射
python manage.py makemigrations
2)通过生成的migrate文件,进行数据库操作。所以与上一条命令一起使用
python manage.py migrate
3)查看对应sql语句(此时没有对数据库做任何操作,仅仅生成文件而已,记录下当前对数据库的操作)
python manage.py sqlmigrate APPname ### (migrations文件夹中文件前缀)
2.进行 后台操作
创建一个后台管理员
python manage.py createsuperuser:创建管理员
3.开启本地服务器
python manage.py runserver
python manage.py runserver 9000 ###我们指定一个端口为9000的ip
这时我们会发现出现了一个地址(默认为:http://127.0.0.1:8000/) ,访问其若出现下列图片情况即可。
这时我们新建一个app即可。
python manager.py startapp [name]
4.后台管理员登陆(必须要在服务开启后才能访问)
我们在项目中的urls.py文件中发现有这样一段代码,意思除了必要的url外,只有后面再加上admin时才能访问后台。
进行刚才注册的管理员登陆即可。
在登陆过程中我们发现这些是英文显示,所以我们就要进行语言的改变,这就牵扯到settings中的一些设置了
语言:默认为英文,所以需要将原来的代码注释起来,重新改为汉字。时区为相同的改法。
Django的manage.py中另外一些常用方法
python manage.py shell ####启动交互界面
python manage.py changepassword ###修改管理员密码
python manage.py dbshell ###启动数据库的命令行工具
python manage.py startproject [name] ###新建一个工程
注意:当我们忘记某些用法的拼写时,我们可以使用下列代码进行查看。
python manage.py