手写简易版web框架及初始Django

什么是web应用?

Web应用程序是一种能够经过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只须要有浏览器便可,不须要再安装其余软件html

软件开发架构

​ c/s架构
​ 客户端
​ 服务端
​ b/s架构
​ 浏览器
​ 服务器
​ 本质:b/s架构其实也是c/s架构前端

HTTP协议

​ 超文本传输协议:规定了客户端与服务端消息传输的格式
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 %}

简易版本的web请求流程图

templates
改文件夹存放就是全部的页面文件(.html)django


手撸web简易版本的web框架后端

什么是web框架?

python三大主流web框架

​ Django:大而全,自带了不少功能模块,相似于航空母舰 (缺点:有点笨重)
​ Flask:短小精悍,自带的功能模块特别少,大部分都是依赖于第三方模块(小而轻)
​ Tornado:异步非阻塞 主要用在处理高io 多路复用的状况 能够写游戏后端

a:socket
b:路由与视图函数
c:模板渲染浏览器

Django:

​ a用的别人的 wsgiref
​ b本身写的
​ c本身写的
Flask:
​ a用的别人的 werkzeug
​ b本身写的
​ c用的别人的 jinja2
Tornado:
​ a,b,c都是本身写的缓存


注意事项(*****************************):

​ 1.计算机的名称不能有中文
​ 2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
​ 3.项目名不能起中文




服务器

Django简介

​ 版本问题
​ 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.必定记得清浏览器的缓存

app(应用)的概念

​ 一个django项目就是一所大学
​ app就是大学里面的学院

注意新建立的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' # 也能够简写
]

django各个文件的做用

应用名
migrations 数据库迁移记录相关数据
admin.py django后台管理相关
models.py 模型表相关
views.py 视图函数相关
项目名
settings.py 配置文件
urls.py 路由与视图函数的映射关系
templates
项目用到的全部的html文件
manage.py
django入口文件

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识别到你的代码变化以后会自动,可是有时候反应速度比较慢 你能够手动重启,你也能够多刷新几回浏览器

相关文章
相关标签/搜索