WEB与服务器
- WEB : 表示用户可以浏览的网页内容(HTML,css,JS)
- 服务器 : 能够给用户提供服务的机器
- 硬件与软件
- 硬件范畴:一台机器
- 软件范畴:一个能够接收用户请求并给出响应的程序
- APACHE
- TOMCAT
- IIS
- Nginx
- … …
- 作用
- 存储web所需要信息(HTML,图片,文件,音频,JS/css)
- 能够处理用户的请求(request),并给出响应(response)
- 执行服务器端程序:数据库操作
- web与服务器之间的关系
- Django框架
- 使用Python语言来开发服务器端处理程序
- 硬件与软件
框架
- 什么是框架
框架是一个为了解决开放性问题而存在的一种结构,框架本身提供了一些最基本的功能.我们只需要在框架的基础功能之上搭建属于自己的操作即可 - Python中的框架
- Django : 重量级的web框架
- tornado : 异步框架
- flask : 轻量级的web框架
- ……
Django框架
- 什么是Django
- 是一个开源框架,2005年发布,采用Python语言开发.早期是做新闻以及内容管理的网站的.提供了非常强大的后台管理系统
- Django的框架模式 - MTV
- M : models 层
- 模型层,负责数据库的建模以及CRUD的操作
- T : Templates层
- 模板层,用于处理用户显示的内容,如HTML
- V : views层
- 视图层,处理与用户交互的部分操作,从模型中获取数据,再将数据发送给模板,并显示给用户
- 视图层,处理与用户交互的部分操作,从模型中获取数据,再将数据发送给模板,并显示给用户
- M : models 层
自己了解:MVC :三层架构
M:models 模型层,负责数据库的建模以及CRUD的操作
V : Views 视图层,用于处理用户显示的内容
C : controllers 控制层,处理与用户交互的部分内容,从模型中获取数据,再交给视图层,再显示给用户
Django的使用
- Django介绍
- Django官网:https://www.djangoproject.com/
- Djangobook:http://djangobook.py3k.cn/2.0/
- Django的安装
- 查看已安装的Django版本
- 进入到终端以及Python的交互模式
- Python3 / ipython3
- 在交互模式中输入 import Django
- 如果未报错:说明已经安装过Django
- 如果报错:说明未安装
- 查看已安装的版本
- 交互模式中:Django.VERSION
- 进入到终端以及Python的交互模式
- 安装
- 在线安装 - 使用 pip / pip3
- sudo pip3 install django(默认安装的Django最高版本)
- sudo pip3 install django==1.11.8(指定安装1.11.8版本)
- 在线安装 - 使用 pip / pip3
- 离线安装
- 下载所需Django安装包
- 在环境中解压Django包
- tar -xvf Django-1.11.8.tar.gz
- 进入到Django-1.11.8中
- 安装:sudo python3 setup.py install
- 查看已安装的Django版本
使用Django
- 创建Django项目
- 使用 Django-admin 指令,创建Django项目
- django-admin startproject 项目名
- 启动服务,用于访问
- 使用 manage.py 文件启动服务
- Python3 manage.py runserver
- 使用 manage.py 文件启动服务
- 访问网站
- 启动服务成功后,在浏览器中,通过以下地址访问:
- http://127.0.0.1:8000
- http://localhost:8000
-
- 使用 Django-admin 指令,创建Django项目
Django项目框架结构介绍
- manage.py
- 负责执行Django中的各项操作文件
- 如:
- 启动服务
- 创建管理员
- 创建应用
- 数据库的同步操作
- 调用方式:
- Python3 manage.py 子命令
- ./manage.py 子命令
主目录(名称与项目名称相同)
目录名 | 文件简介 |
---|---|
__init__.py | 项目初始化文件,每当服务器启动的时候,都会自动执行 |
urls.py | 项目的基础url(路由)配置文件 |
wsgi.py | 应用服务器配置文件 |
settings.py | 项目的主设置文件 |
settings.py简介
模块 | 简介 |
---|---|
BASE_DIR | 获取当前项目的根目录路径 |
❶BEBUG | 调试模式; |
❷ALLOWED_HOSTS | 设置允许访问本项目的地址列表 |
INSTALLED_APPS | 指定已安装的应用,如果有自定义应用的话,需要在此位置进行注册 |
MIDDLEWARE | 指定注册的中间件 |
ROOT_URLCONF | 指定项目的基础路由配置文件 |
TEMPLATES | 指定模板的信息 |
DATABASES | 指定数据库的信息 |
LANGUAGE_CODE | 指定网站的显示语言,如果要使用中文则可以修改为zh-Hans |
TIME_ZONE | 指定时区,如果指定中国时区,则可以修改为Asia/Shanghai |
❶开发过程:推荐使用True;上线运行:推荐改为false
❷如果不设置的话,只有本机能访问(localhost/127.0.0.1)
能访问推荐写’*’,表示人格地址都允许访问该项目(局域网)
url的使用
- urls.py
- 默认是在主目录中,主路由配置文件,会包含最基本的地址映射.
- 每个请求到达后,都会由urls.py中的urlpatterns列表中的url()进行匹配
- url()函数匹配上之后,可能将请求转交给其他的urls.py或视图(Views)去处理
url函数
- url函数的语法
- url(regex,views,kwargs=None,name=None)
参数 | 解释 |
---|---|
regex | 正则表达式,匹配请求的url |
views | 视图处理函数或其他的urls.py |
kwargs | 字典,用来向views传参,没有参数则可以省略 |
name | 字符串,给url()起别名,主要在模板中使用 |
ex:
urlpatterns = [
url(r'^run/$',run_views),
]
- 通过url向views传参
- 使用正则表达式传参
- 使用子组传参,一个子组是一个参数,想要多个参数的话,可以使用多个子组
- 使用正则表达式传参
urlpatterns = [
#访问路径是run/的时候,交个run_views去处理
url(r'^run/$',run_views),
#访问路径是run/任意两位数字,交给run_args_views去处理
url(r'^run/(\d{2})',run_args_views),
#访问路径是run/四位数字/两位数字/,交给run1_views处理
url(r'^run/(\d{4})/(\d{2})/$',run1_views),
]
注意:
1、在url()中,一个子组()表示一个参数
2、在views.py中,对应的处理函数要根据url()中子组的个数,
相应的定义参数,定义的参数要位于request之后
ex:
1、
url(r'^run/(\d{2})',run1_views),
def run1_views(request,num)
2、
url(r'^run/(\d{2})/(\d{4})',run2_views)
def run2_views(request,num1,num2)
注意:
1. 在url()中,一个子组()表示一个参数
2. 在views.py中,对应的处理函数要根据url()中子组的个个数,相应的定义参数,定义的参数要位于request之后
ex:
1、
url(r'^run/(\d{2})',run1_views),
def run1_views(request,num)
2、
url(r'^run/(\d{2})/(\d{4})',run2_views)
def run2_views(request,num1,num2)
- 使用url()第三个参数,字典传参
- url(r’show/$’,show_views,{‘name’:’laoshe’,’age’:’89’})
- def show_views(request,name,age):
- name:表示的就是字典name参数的值
- age:表示的就是字典age参数的值
- 注意:
- 视图处理函数中,必须声明参数
- 参数的名称和位置,必须要与字典中的名称和位置保持一致