定义:Django是一个基于python的高级Web开发框架,高效快速开发,高度集成,免费开源。
浏览器响应过程:输入URL->浏览器向网站服务器发送HTTP请求->服务器处理请求->返回HTTP响应(HTML文档)->浏览器解析展现
浏览器基本原理:
1、本质是网络通信;
2、浏览器通过通信获取页面的源代码文档(HTML等);
3、浏览器解析文档展现给用户
安装Python
Windows:Python官网下载对应MSI文件(低于Python2.7版本不兼容Django),
MAC及Linux自带
安装Django
方法一:pip install Django==1.10.5 //windows在安装Python时已经默认安装pip
方法二:下载源码解压后,进入目录执行python setup.py install
清理cmd屏幕命令:cls
查看文件夹目录:dir
确认Django安装成功
:
1、python -m django --version 返回Django版本号
2、进入python解析器,import django,不报错
Django编辑器推荐 Pycharm、Sublime Text,Atom
创建项目:
打开命令行->进入想要安置项目目录->输入:django-admin.startproject myblog(项目名)
项目目录介绍:
1、wsgi.py(Python Web Server Gateway Interface Python服务器网管接口):Python应用与Web服务器之间的接口
2、urls.py:URL配置文件,Django项目中所有地址(页面)都需要配置URL
3、settings.py:项目的总配置文件,包含项目根目录、安全码、数据库、Debug调试、web应用、时间等配置。
4、__init__.py:一般为空,有此可直接调用该模块
启动Django自带服务器:
pythton mange.py runserver 9999 (默认8000端口,如后加端口号进行自定义)
项目创建没问题后,可用Pycharm打开项目
创建应用:打开命令行->进入项目中mange.py同级目录->输入:python manage.py startapp blog(应用名)->添加应用名到settings.py中INSTALLED_APPS里
应用目录介绍:
1、migrations:数据移植(迁移)模块,内容自动生成
2、admin.py:当前应用的后台管理系统配置
3、apps.py:当前应用的一些配置,Django-1.9以后自动生成
4、models.py:数据模块、使用ORM框架、类似MVC结构中Models(模型)
5、test.py:自动化测试模块,在这里编写测试脚本(语句),Django提供自动化测试功能
6、views.py:执行响应的代码所在的模块,代码逻辑处理的地点,项目中大部分代码均在这里
创建页面响应:
1、每个响应对应一个函数,函数必须返回一个响应;
2、函数必须存在一个参数,一般约定为request
3、每一个响应(函数)对应一个URL
配置URL:
1、每个URL都以url的形式写出来
2、url函数放在urlpatterns列表中
3、url函数三个参数:URL(正则),对应方法、名称(可空缺)
url(r'^index/$',bv.index) 正则表达式:^以…开头,$以…结尾、/不能忘
URL配置包含其他URL配置方法:
在根urls.py中引入include->在APP目录下创建urls.py,格式与跟urls.py相同->根urls.py中url函数第二个参数改为include('blog.urls')
注:跟urls.py针对APP配置的URL名称,是该APP的所有URL的总路径
Templates:HTML文件、使用了Django模板语音(Django Template Language,DTL)、可以使用第三方模板(如Jinja2)
开发Template步骤:
在APP根目录下创建名为Templates的目录->在Templates木下创建HTML文件->在views.py中返回render()
模板DTL初步使用:
1、render()函数支持一个dict类型参数,该字典是后台传递到模板(.html)的参数,键为参数名。在模板(.html)中使用
{{参数名}}直接使用
2、Django按照INSTALLED_APPS中添加顺序查找Templates,不同APP下Templates目录中同名.html文件会造成冲突,未解决该冲突,可在Templates下创建与APP同名的目录,将.html文件放在新创建的APP同名目录下
Templates过滤器:{{value|filter}}
Models介绍
1、一个model对应数据库的一张数据表
2、Django中Models以
类的形式表现
3、Models包含一些
基本字段和数据的一些
行为
ORM(Object Relation Mapping,对象关系映射),实现对象和数据库之间的映射,隐藏了数据访问的细节,不需要编写SQL语句。
编写Models的步骤:在应用根目录下创建models.py,并引入models模块(Django在创建应用时会自动生成)
->创建类,继承models.Model,该类即是一张数据表
->在类中创建字段,字段即类里面的属性(变量),如attr=models.CharField(max_length=64)
生成数据表:命令行进入manage.py同级目录-
>执行
python manage.py makemigrations app名(可选,否则迁移所以应用)->再执行
pyhton manage.py migrate
查看SQL语句:Django会自动在app/migrations/目录下生成移植文件,执行
python manage.py sqlmigrate 应用名 文件id 可查看SQL语句
SQLite Expert Personal,第三方软件,轻量级,完全免费,可查看并编辑db.sqlite3
页面呈现数据:
后台步骤:views.py 中 import models
-> article = models.Article.objects.get( pk = 1 )
-> render(request,page,{'
article':article})
前端步骤:模板可直接使用对象以及对象的”.“操作,如{{
article.title}}
Admin介绍:Admin是Django自带的功能强大的自动化数据库管理界面,被授权的用户可直接在Admin中管理数据库,Django提供了许多针对Admin的定制功能。
配置Admin:
1、创建超级用户 python manage.py createsuperuser->localhose:8000/admin Admin登陆入口->setting.py中LANGUAGE_CODE = 'zh_Hans'汉化
2、配置应用:
在应用下admin.py中引入自身models模块(或里面的模型类)如
from models import Article->
编辑admin.py
admin.site.register(Article)
修改Admin数据默认显示名称:在models.py中Article类下添加一个方法->根据Python版本选择__str__(self)(V3.0)或__unicode__(self) (V2.7)->return self.title
Admin增强:在admin.py中创建admin配置类class ArticleAdmin(admin.ModelAdmin)->注册改为admin.site.register(Article,ArticleAdmin)
显示其他字段:
list_display = ('title' , 'content'),list_display同时支持
tuple和
list
Admin过滤:
list_filter = ('pub_time' , ) (注意逗号)
Django中超链接templates中可以用
"{% url 'app_name:url_name' param %}",其中app_name在根url.py
中配置,url_name在应用下url.py中配置
编辑响应函数(如 提交 按钮)
使用request.POST['参数名']获取表单数据
->models.Article.objects.create(tilte.content创建对象
Django Shell:它是一个Python的交互式命令行程序,能自动引入项目环境,可以用来与项目进行交互
启动Django Shell:
python manage.py shell,可用Django Shell可用于调试工作、测试未知方法。