python后端框架之------Django

1.Django框架介绍

1.1什么是Django

Django是一个开源框架,2005年发布,采用Python语言编写的.早期时主要做新闻和内容管理的网站的。
Django本身提供了非常强大的后台管理系统

版本:

  • 最高:2.1.2
  • 使用:1.11.8

官网:http://www.djangoproject.com
中文文档:http://djangobook.py3k.cn/2.0/

1.2框架模式

MTV

  • M :Models - 数据库模型
  • T :Templates - 模板(网页)
  • V :Views - 视图

2. Django框架的安装

2.1 安装Django框架

.查看已安装的Django版本

  • 进入到终端以及python的交互模式
      交互模式:python3 / ipython3

  • 交互模式中输入:import django
      如果未报错:当前环境中已经装好Django
      如果报错:当前环境中没有Django

  • 查看已安装的版本
       交互模式中:django.VERSION

  • 安装Django
    1.在线安装 - 使用 pip3
       pip3 : 安装到 python3
       pip : 安装到 python2

    sudo pip3 install django
    (安装Django的最新版本)

    sudo pip3 install django==1.11.8
    (安装Django的指定版本)

    2.离线安装
      1.下载安装包
      2.解压安装包
        tar -xvf Django-1.11.8.tar.gz
      3.进入到解压目录中,找到 setup.py 文件
        sudo python3 setup.py install

3.Django框架的使用

3.1 创建项目

  1. 创建目录

    作用:用于保存所有的Django项目(可选)

    指令:mkdir django

  2. 创建项目

    	cd django
    	使用 django-admin 指令创建 Django 项目
    	语法:django-admin startproject 项目名
    

3.2 Django项目的结构介绍

  1. manage.py

    包含执行django中的各项操作的指令(子命令)
    如:
    启动服务:runserver
    创建应用:startapp
    创建管理员:createsuperuser
    … …

  2. 主目录(与项目名称一致的目录)

    __init__.py
    		项目的初始化文件,服务被启动,该文件自动被运行
    	2.urls.py
    		项目的基础url配置文件(基础的路由配置)
    	3.wsgi.py
    		Web Server Gateway Interface
    		Web服务网关接口
    	4.settings.py
    		项目的配置文件
    		1.BASE_DIR : 获取当前项目的绝对路径
    		2.DEBUG : 是否启用调试模式
    			True :启用调试模式(开发环境中推荐)
    			False :不启用调试模式(生产环境中推荐)
    		3.ALLOWED_HOSTS
    			设置允许访问到本项目的地址列表
    			如果为空的话,只有本机(localhost/127.0.0.1)才能访问
    
    			如果允许在局域网中被外部机器访问的话:
    			推荐写 ['*'],表示任何能够表示该机器的地址都能访问到当前项目
    
    			如果允许被其他机器访问的话,启动服务时,必须使用以下方式:
    			 ./manage.py runserver 0.0.0.0:端口号
    		4.INSTALLED_APPS
    			指定已安装的应用,如果有自定义应用的话,需要在此注册
    		5.MIDDLEWARE
    			中间件,如果有自定义的中间件,需要在此注册
    		6.ROOT_URLCONF
    			用于指定项目的基础路由配置文件
    		7.TEMPLATES
    			指定模板的信息
    		8.DATABASES
    			指定数据库的信息
    		9.LNAGUAGE_CODE
    			语言设置,如果需要中文的话,允许将值更改为 "zh-Hans"
    		10.TIME_ZONE
    			指定时区,中国时区的话,允许将值设置为 "Asia/Shanghai"
    
  3. URL的使用

    1.urls.py
    	默认在主目录中,主路由配置文件,会包含最基本的地址映射。
    	作用:通过urls中定义好的地址找到对应的视图处理函数
    2.url的语法
    	作用:为了匹配用户的访问路径
    	from django.conf.urls import url
    	语法:
    		url(regex,views,kwargs=None,name=None)
    			1.regex:允许是正则表达式,匹配请求的url
    			2.views:对应的视图处理函数的名称
    			3.kwargs:字典,用来向views传参,如果没有参数可以省略
    			4.name:为url起别名,在地址反向解析时使用
    3.通过url向视图传参
    	1.使用正则表达式传参
    		使用子组传参,一个子组就是一个参数,要传递多个参数的话需要使用多个子组,中间用 / 隔开
    		子组 - ()
    
    		urlpatterns = [
    			#当访问路径是show/的时候,交给show_views处理
    			url(r'^show/$',show_views),
    			#当访问路径是show/两位数字的时候,交给show1_views函数处理
    			url(r'^show/(\d{2})/$'show1_views),
    		]
    
    		views.py
    		def show1_views(request,num1):
    			num1 表示的就是路径 "show/"后面的第一个参数
    			pass
    
    		练习:
    			访问地址:localhost:8000/四位数字/两位数字/两位数字
    			在网页中输出:生日为:xxxx年xx月xx日
    	2.使用url()第三个参数 - 字典传参
    		dic = {
    			'name':'naruto',
    			'age':18,
    		}
    
    		url(r'^show3/$',show3_views,dic)
    
    		views.py
    		def show3_views(request,name,age):
    			pass
    

4.Django中的应用

什么是应用

应用就是网站中的一个独立的程序模块
在Django中,主目录一般不处理用户的具体请求,主目录主要做的是项目的初始化以及请求的分发(分布式请求处理),而具体的请求由各个应用去处理

怎么创建应用

1.指令
		./manage.py startapp 应用名称

		ex:
			./manage.py startapp news
2.在 settings.py 中进行注册
		在 INSTALLED_APPS 中追加引用名称
		INSTALLED_APPS = [
			'djanog.contrib.admin',
			... ...,
			'自定义应用名称',
		]
 3.应用的结构组成
	1.migrations 目录
		存放数据的中间文件
	2.__init__.py
		应用的初始化文件
	3.admin.py	
		应用的后台管理配置文件
	4.app.py
		应用的属性配置文件
	5.models.py
		Models 与模型相关的映射文件
	6.tests.py
		应用的单元测试文件
	7.views.py
		定义视图处理函数的文件
4.分布式路由系统
	在每个应用中创建 urls.py ,内容的格式参考主目录的urls.py

	当访问路径是 http://localhost:8000/music/xxxx
	则交给music的urls去处理

	当访问路径是 http://localhost:8000/news/xxxxx
	则交给news的urls去处理

	当访问路径是 http://localhost:8000/music/index
	则交给music的urls找到 index_views 去处理

	当访问路径是 http://localhost:8000/news/index
	则交给news的urls找到 index_views去处理
	
	当访问路径是 http://localhost:8000/news/
	则交给news的urls找到 index_views去处理

你可能感兴趣的:(笔记,python,django,后端框架)