Web应用程序是一种能够经过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只须要有浏览器便可,不须要再安装其余软件html
c/s架构
客户端
服务端
b/s架构
浏览器
服务器
本质:b/s架构其实也是c/s架构前端
超文本传输协议:规定了客户端与服务端消息传输的格式
python
# 四大特性: 1.基于TCP/IP协议做用于应用层的协议 2.基于请求响应 3.无状态 4.无链接 # 数据格式之请求: 请求首行 请求头(一堆k,v键值对) 请求体(post请求携带的数据) # 数据格式之响应: 响应首行 响应头(一堆k,v键值对) 响应体(post请求携带的数据)
# 响应状态码 1XX 服务器已经成功接受到你的数据正在处理,你能够继续提交其余数据 2XX 请求成功 服务器已经将你请求的数据发送给你了 3XX 重定向 4XX 请求资源不存在 5XX 服务器错误
静态网页:
页面上的数据都是写死的,万年不变
动态网页:
页面上的数据是从后端动态获取的
好比后端获取当前时间
后端获取数据库数据而后传递给前端页面
web
后端生成的数据直接传递给前端页面使用(而且前端页面能够灵活的操做改数据) >>> 模板语法
数据库
模板渲染 模板语法须要依赖于第三方模块 pip install jinja2 模板语法 jinja2支持前端直接使用相似于python的语法操做数据 <p>{{ user_dic }}</p> <p>{{ user_dic.name }}</p> <p>{{ user_dic['password'] }}</p> <p>{{ user_dic.get('name') }}</p> {% for user in user_dict %} <!--[{},{},{},{}]--> <tr> <td>{{ user.id }}</td> <td>{{ user.name }}</td> <td>{{ user.password }}</td> </tr> {% endfor %}
templates
改文件夹存放就是全部的页面文件(.html)django
手撸web简易版本的web框架后端
Django:大而全,自带了不少功能模块,相似于航空母舰 (缺点:有点笨重)
Flask:短小精悍,自带的功能模块特别少,大部分都是依赖于第三方模块(小而轻)
Tornado:异步非阻塞 主要用在处理高io 多路复用的状况 能够写游戏后端
a:socket
b:路由与视图函数
c:模板渲染浏览器
a用的别人的 wsgiref
b本身写的
c本身写的
Flask:
a用的别人的 werkzeug
b本身写的
c用的别人的 jinja2
Tornado:
a,b,c都是本身写的缓存
1.计算机的名称不能有中文
2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
3.项目名不能起中文
服务器
版本问题
djang下载
推荐下载1.11.11版本
命令行直接下载
pip3 install django==1.11.11
pycharm下载
验证是否下载成功 django-admin
建立django项目的方式 方式1(命令行建立): 建立django项目 django-admin startproject 项目名 建立app应用 python3 manage.py startapp app01 启动django项目 python3 manage.py runserver ps:用命令行建立django默认不会自动建立templates文件夹 须要你手动本身建立(注意改文件夹路径是否被添加配置文件中)
方式2(pycharm建立) FILE >>> new project 选择第二个django 须要注意名字不能有中文,选择本地的解释器,勾选后台管理 建立app pycharm命令行建立 python3 manage.py startapp app01 Tools下面run manage task功能栏 启动点小绿色箭头 强调: 1.用django必定要保证只有一个在运行状态 切记切记!!!!!!! 2.必定记得清浏览器的缓存
一个django项目就是一所大学
app就是大学里面的学院
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config' # 能够用全称
'app01' # 也能够简写
]
应用名
migrations 数据库迁移记录相关数据
admin.py django后台管理相关
models.py 模型表相关
views.py 视图函数相关
项目名
settings.py 配置文件
urls.py 路由与视图函数的映射关系
templates
项目用到的全部的html文件
manage.py
django入口文件
from django.shortcuts import render,HttpResponse,redirect
HttpResponse 返回字符串
render 返回一个html页面
两种给前端页面传值的方式
def reg(request):
user_dict = {'name':'jason','password':'123'}
return render(request,'reg.html',{'user_dict':user_dict})
def reg(request): user_dict = {'name':'jason','password':'123'} return render(request,'reg.html',locals())
redirect 重定向
django识别到你的代码变化以后会自动,可是有时候反应速度比较慢 你能够手动重启,你也能够多刷新几回浏览器