---恢复内容开始---python
Django采用MVC架构设计的开源的WEB 快速开发框架mysql
优势 :正则表达式
可以快速的开发,如 Auth,Cache, 模板sql
MVC设计模式shell
实用的管理后台数据库
自带ORM, Template,Form,Auth核心组件django
简洁的URL 设计设计模式
周边插件丰富架构
缺点:oracle
框架中,由于东西大而全
同步阻塞
因此Django的设计目标就是一款大而全,便于企业快速开发 项目的框架,所以企业应用较广
python使用3。6.x
Django下载地址:https://www.djangoproject.com/download/
本次使用Django 1.11 版本,它也是长期支持版本LTS, 请在虚拟环境中安装
在虚拟环路径中,Lib/site-packages/django/bin 下有一个 django-admin.py ,从它开始
$ diango-admin --version
$ diango-admin
1 (blog2) F:\Python项目\blog12>django-admin 2 3 Type 'django-admin help <subcommand>' for help on a specific subcommand. 4 5 Available subcommands: 6 7 [django] 8 check 9 compilemessages 10 createcachetable 11 dbshell 12 diffsettings 13 dumpdata 14 flush 15 inspectdb 16 loaddata 17 makemessages 18 makemigrations 19 migrate 20 runserver 21 sendtestemail 22 shell 23 showmigrations 24 sqlflush 25 sqlmigrate 26 sqlsequencereset 27 squashmigrations 28 startapp 29 startproject 30 test 31 testserver 32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are 33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
注意:没有特殊声明,全部的操做都在项目根目录下
$ django-admin startproject blog . 注意最后有一个点
不然:会出现两层blog
正常:
上面明亮就在当前项目的根目录中构建了Django项目的初始文件, 点 表明项目根目录
重要文件说明:
使用数据库,须要修改默认的数据库配置
在主项目的settings.py下的DATABASES, 默认使用的是sqllite,修改成mysql
1 DATABASES = { 2 'default': { 3 'ENGINE':'diango.db.backends.mysql', 4 'NAME': 'blog', 5 'USER':'root', 6 'PASSWORD':'123456', 7 'HOST':'192.168.112.110', 8 'PORT':'3306' 9 } 10 }
HSOT 数据库主机,缺省是空字符串,表明localhost, 如果“/” 开头表示使用Unix Socket 链接
OPTIONS 选项,字典,参考MySQL文档
内建的引擎有:
六、MySQL数据库驱动
https://docs.djangoproject.com/en/2.0/ref/databases/
Django 支持mysql 5.5 +
Django 官方推荐使用本地驱动 mysqlclient 1.3.7 +
$ pip install mysqlclient,( 可是报错)
下载地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/
建立用户应用:$ python manage.py startapp user
可能会报错,我是用的3.7版本,报错:
解决办法:
该应用完成 一下功能
用户注册
用户登陆
建立应用后,项目根目录下产生一个 user目录,有以下文件:
在settings.py中增长user应用,目的是为了后台管理admin使用,或迁移migrate使用
字段选项:注意 default不是建立数据库建立时的不填的初始值
关系类型字段类:
一对多时,自动建立会增长_id 后缀
基类models.Model
表名不指定默认使用<appname>_<model_name>
1 from django.db import models 2 3 # Create your models here. 4 5 class User(models.Model): 6 class Meta: 7 db_table = 'user' 8 id = models.AutoField(primary_key=True) 9 name = models.CharField(max_length=48, null=False) 10 email = models.CharField(max_length=48,unique=True, null=False) 11 password = models.CharField(max_length=128, null=False) 12 13 def __repr__(self): 14 return '<user{}{}'.format(self.id, self.name)
迁移:从模型定义生成数据库的表
一、生成迁移文件
修改过Model类,还须要调用makemigrations ,而后migrate,迁移文件的序号会增长
注意:迁移的应用必须在settings.py 的INSTALLED_APPS中注册
二、执行迁移生成数据库的表
执行了迁移,还同时生成了admin管理用的表
查看数据库,user表建立好,字段设置正常
若是修改 models.py 后,在迁移,会产生新的文件:
---恢复内容结束---
Django采用MVC架构设计的开源的WEB 快速开发框架
优势 :
可以快速的开发,如 Auth,Cache, 模板
MVC设计模式
实用的管理后台
自带ORM, Template,Form,Auth核心组件
简洁的URL 设计
周边插件丰富
缺点:
框架中,由于东西大而全
同步阻塞
因此Django的设计目标就是一款大而全,便于企业快速开发 项目的框架,所以企业应用较广
python使用3。6.x
Django下载地址:https://www.djangoproject.com/download/
本次使用Django 1.11 版本,它也是长期支持版本LTS, 请在虚拟环境中安装
在虚拟环路径中,Lib/site-packages/django/bin 下有一个 django-admin.py ,从它开始
$ diango-admin --version
$ diango-admin
1 (blog2) F:\Python项目\blog12>django-admin 2 3 Type 'django-admin help <subcommand>' for help on a specific subcommand. 4 5 Available subcommands: 6 7 [django] 8 check 9 compilemessages 10 createcachetable 11 dbshell 12 diffsettings 13 dumpdata 14 flush 15 inspectdb 16 loaddata 17 makemessages 18 makemigrations 19 migrate 20 runserver 21 sendtestemail 22 shell 23 showmigrations 24 sqlflush 25 sqlmigrate 26 sqlsequencereset 27 squashmigrations 28 startapp 29 startproject 30 test 31 testserver 32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are 33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
注意:没有特殊声明,全部的操做都在项目根目录下
$ django-admin startproject blog . 注意最后有一个点
不然:会出现两层blog
正常:
上面明亮就在当前项目的根目录中构建了Django项目的初始文件, 点 表明项目根目录
重要文件说明:
使用数据库,须要修改默认的数据库配置
在主项目的settings.py下的DATABASES, 默认使用的是sqllite,修改成mysql
1 DATABASES = { 2 'default': { 3 'ENGINE':'diango.db.backends.mysql', 4 'NAME': 'blog', 5 'USER':'root', 6 'PASSWORD':'123456', 7 'HOST':'192.168.112.110', 8 'PORT':'3306' 9 } 10 }
HSOT 数据库主机,缺省是空字符串,表明localhost, 如果“/” 开头表示使用Unix Socket 链接
OPTIONS 选项,字典,参考MySQL文档
内建的引擎有:
六、MySQL数据库驱动
https://docs.djangoproject.com/en/2.0/ref/databases/
Django 支持mysql 5.5 +
Django 官方推荐使用本地驱动 mysqlclient 1.3.7 +
$ pip install mysqlclient,( 可是报错)
下载地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/
建立用户应用:$ python manage.py startapp user
可能会报错,我是用的3.7版本,报错:
解决办法:
该应用完成 一下功能
用户注册
用户登陆
建立应用后,项目根目录下产生一个 user目录,有以下文件:
在settings.py中增长user应用,目的是为了后台管理admin使用,或迁移migrate使用
字段选项:注意 default不是建立数据库建立时的不填的初始值
关系类型字段类:
一对多时,自动建立会增长_id 后缀
基类models.Model
表名不指定默认使用<appname>_<model_name>
1 from django.db import models 2 3 # Create your models here. 4 5 class User(models.Model): 6 class Meta: 7 db_table = 'user' 8 id = models.AutoField(primary_key=True) 9 name = models.CharField(max_length=48, null=False) 10 email = models.CharField(max_length=48,unique=True, null=False) 11 password = models.CharField(max_length=128, null=False) 12 13 def __repr__(self): 14 return '<user{}{}'.format(self.id, self.name)
迁移:从模型定义生成数据库的表
一、生成迁移文件
修改过Model类,还须要调用makemigrations ,而后migrate,迁移文件的序号会增长
注意:迁移的应用必须在settings.py 的INSTALLED_APPS中注册
二、执行迁移生成数据库的表
执行了迁移,还同时生成了admin管理用的表
查看数据库,user表建立好,字段设置正常
若是修改 models.py 后,在迁移,会产生新的文件:
在user应用的admin.py 添加
user就能够在后台增生改查了
路由功能就是实现URL模式匹配和处理函数之间的映射
路由配置要在项目的urls.py 中配置,也能够多级配置,在每个应用中,创建一个urls.py文件配置路由映射
url函数
url( regex, view, kwargs=None, name=None ) 进行模式匹配
regex:正则表达式,与之匹配的URL 会执行对应的第二个参数view
view:用于执行与正则表达式匹配的URL
kwargs:视图使用的字典类型的参数
name:用来反向获取URL
urls.py 内容以下:
测试:
url(r'index', index),# 127.0.0.1:8000/index 只能这样访问
url(r'index/', index), # 127.0.0.1:8000/index/ 必须把 / 加上
url(r'index/$', index) # index 后面自动加 /
经常使用属性打印:(默认是GET)
打印二:(GET)
请求信息测试 和JSON 响应:
在项目中首页 多数使用HTML 显示,为了加载速度快,通常多使用静态页面。
若是首页内容多,还有部分数据须要变化,将变化部分使用AJAX技术从后台获取数据
本次,为了学习模板技术,只将首页采用Django的模板技术实现
使用Postman 工具调试
GET
POST: