zoukankan      html  css  js  c++  java
  • Django

    什么是web应用

    软件开发架构

    c/s架构:客户端/服务端

    b/s架构:浏览器/服务器

    本质:b/s架构其实就是c/s架构

    HTTP 协议

    http协议:超文本传输协议,规定了客户端与服务端之间的传输格式

    四大特性

    '''
    1.基于TCP/IP协议作用于应用层的协议
    2.基于请求响应
    3.无状态
    4.无连接
    '''
    

    数据格式之请求:

    '''
    请求首行
    请求头(一堆k,v键值对)
    
    请求体(post请求携带的数据)
    '''
    

    数据格式之响应

    '''
    请求首行
    请求头(一堆k,v 键值对)
    
    请求体(post请求携带的数据)
    '''
    

    响应状态码

    '''
    1XX	服务器已经成功接受到你的数据正在处理,你可以继续提交其他数据
    2XX	请求成功 服务器已经将你请求的数据发送给你了
    3XX 重定向
    4XX 请求资源不存在
    5XX 服务器错误
    '''
    

    模块渲染

    渲染:后端生成的数据直接传递给前端页面使用(并且前端页面可以灵活的操作该数据)

    模块渲染:借助第三方模块

    pip install jinja2
    
    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框架思路

    '''
    1、导入 impor socket
    2、定义服务器:
    3、循环,阻塞等待连接
    4、根据http协议发送请求
    5、手动处理http数据,获取用户访问的路径
    6、路由匹配上后返回数据,当匹配不上是统一返回404
    '''
    

    基于wsgiref手撸框架

    # 主逻辑
    1、导入wsgiref模块
    2、sever = make_server('127.0.0.1',8080,run)
    3、定义run函数
    def run(env,response)
    	'''
    	env:请求信息,大字典里面装满K,V键值对
    	response:响应信息,固定写法
    	'''
    4、获取用户路径 env.get(PATH_INFO)
    5、循环对比路由与视图函数之间映射关系,匹配成功结束循环
    # URL:映射关系视图
    
    # view:定义各种功能块
    
    
    

    Django

    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简介

    版本问题
    django下载
    	推荐下载1.11.11版本
    命令行直接下载
    	pip3 install django==1.11.11
    pycharm下载
    	
    验证是否下载成功
    	django-admin
    
    

    创建Django的方式

    # 方式1(命令行式):
    '''
    1、创建Django项目:django-admin startproject 项目名
    2、创建app应用:python3 manage.py startapp app01
    3、启动Django项目:python3 manage.py runserer
    ps:用命令行创建django默认不会自动创建templates文件夹
      需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)
    '''
    # 方式2(pycharm创建)
    '''
    FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
    创建app
    		pycharm命令行创建
    		python3 manage.py startapp app01
    		Tools下面run manage task功能栏:startapp app02
    启动点击运行
    '''
    
    

    注意新创建的app需要在配置文件中注册才能生效

    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	  重定向
    
    
  • 相关阅读:
    CentOS7.4安装和配置Zabbix4.0
    CentOS7.4安装jdk1.8.0_201、Tomcat-8.5.38环境
    基于腾讯云CentOS7.4+MySQL5.7+Python3+uWSGI+Nginx的Django项目部署
    Windows Server 2008 R2环境下Apache2.4+Tomcat8配置
    Django2.1.5使用xadmin打造适合国人的后台管理系统
    Django2.1.3 smtp 邮件 553报警
    GitHub的Windows客户端的使用教程
    Ubuntu18.04的网络配置(静态IP和动态IP)
    CentOS6.X、7.X下Jenkins的安装及使用
    CentOS7下搭建Nginx+PHP7的安装配置
  • 原文地址:https://www.cnblogs.com/king-home/p/10982084.html
Copyright © 2011-2022 走看看