ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Django推导 安装等

2021-08-09 18:35:17  阅读:164  来源: 互联网

标签:index return 推导 10 server django path Django 安装


HTTP协议补充

四大特性:

  1. 基于请求响应
  2. 基于TCP/IP协议之上的应用层协议
  3. 无状态 不能保存用户信息(cookie,session,token)
  4. 短链接

请求数据格式:

请求首行(请求方式,http版本)
请求头
\r\n
请求体(post请求有,get没有)

响应数据格式

响应首行(状态码)
响应头
\r\n
响应体

响应状态码(http协议规定)

200 请求成功 OK
404 请求数据不存在
500 服务器内部错误

业务状态码

一般规定一个正确的,只规定200是正确,其他的全部为异常

eg:
			1.用户名不存在
			2.验证码错误
				1)随机生成 458965
				2)校验验证码
			存入验证码到数据库(MySQL),表结构
				id,  code,  phone create_time
				1	  123456  110    2021-10-01 10:10:10
				2	  123457  110    2021-10-01 11:10:10
				3	  123458  110    2021-10-01 12:10:10
			redis也可以存
			如果不限制一天当中,不限制发送次数
			存到session中
			
			3.密码错误
	
	json.dumps({})
	
	crm,11 财务12,销售13,主站
	def index()
	
		user_dic = {'code':121001, 'msg':'验证码错误','data':[]}
		user_dic = {'code':121002, 'msg':'用户名不存在','data':[]}
		user_dic = {'code':121003, 'msg':'密码错误','data':[]}
		
		# 如果都正确
		user_dic = {'code':200, 'msg':'OK','data':[]}
		return JSONrESPONSE(user_dic)
"""

web简易版框架

import socket

server = socket.socket()  # TCP
server.bind(('127.0.0.1', 8080))

server.listen(5)



while True:
    sock, addr = server.accept()

    # 接收浏览器发送过来的数据
    data = sock.recv(1024)  # 如果超过1024的数据,出现粘包现象
    print(data)

    sock.send(b'HTTP/1.1 200 OK \r\n\r\n')

    data = data.decode('utf-8')
    current_path = data.split(' ')[1]  # ['GET', '/login/', '']

    """
        需求:输入不同的后缀,返回不同的内容
            1. 知道用户输入的后缀?   
                
            2. 做判断,
                if path == '/index'
                    :return 'index'
                    :return index()
    """

    # 判断
    if current_path == '/index/':
        sock.send(b'index')
    elif current_path == '/login/':
        sock.send(b'login')
    else:
    # 向浏览器发送数据
        sock.send(b'404')

    sock.close()

wsgiref模块

简易版本

# uwsgi  WSGI wsgiref

from wsgiref.simple_server import make_server


from urls import urls
def run(env, response):
    """

    :param env:  请求相关的数据
    :param response: 响应相关的
    :return: 返回值
    """
    print(env)  # 大字典格式,帮我们封装了http请求过来的所有数据
    """
        输入不同的后缀,返回不同的内容
    """
    response('200 OK', [])

    current_path = env.get('PATH_INFO')  # /index/
    # if current_path == '/index/':
    #     res = index()  # /index/
    #     # return [b'index']
    #     return [res.encode('utf-8')]
    # elif current_path == '/login/':
    #     return [b'login']
    # return [b'404']
    func = None
    for url in urls:
        # url => ('/index', index),
        # current_path => /index /login
        if current_path == url[0]:  # /index
            func = url[1]
            break

    # func => None , index, login reg  函数内存地址
    if func:
        res = func()
        return [res.encode('utf-8')]
        # return [res]
    else:
        return [b'404']



if __name__ == '__main__':
    server = make_server('127.0.0.1', 8080, run)
    """
        相当于帮我们实现了socket服务端
        实时监听 127.0.0.1:8080,
        当请求来的时候,全部交给run方法
        注意: 
            run方法有两个参数
    """

    server.serve_forever()  # 启动服务端
内部本质:帮我们写了socket服务端

"""
	urls.py   => 后缀
	views.py  => 函数
	templates => 存html文件 也叫模板
"""

如果在让你加功能,只需要在urls.py中添加一个路径,然后在views中写逻辑就可以了

Django框架

python中主流框架
	 1. django
    		特点:大而全,重量级框架
        	 缺点:笨重
     2. flask
    		特点:小而美,轻量级框架,
        	 缺点:依赖于第三方的模块
     3. tornado
    		特点:异步非阻塞,解决高并发问题
        	缺点:难

创建Django框架

# 1、cmd命令行创建	
1. # django-admin startproject mysite    
 2.启动项目    
	必须切到项目目录下,跟manage.py同级目录下面		# python3 manage.py runserver  
   3.创建应用  
  Next, start your first app by running python manage.py startapp [app_label].    	# python3 manage.py startapp app01        # 2、pycharm创建# 命令行创建和pyacharm创建的区别	1.pycharm多了一个templates文件    2.    # 命令行创建    TEMPLATES = [    {        'BACKEND': 	'django.template.backends.django.DjangoTemplates',        'DIRS': [],    }                # pycharm创建的        TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [os.path.join(BASE_DIR, 'templates')]    }                 #####################注意事项###############################            创建完应用之后,必须在下面注册应用                    INSTALLED_APPS = [                        'django.contrib.admin',                        'django.contrib.auth',                        'django.contrib.contenttypes',                        'django.contrib.sessions',                        'django.contrib.messages',                        'django.contrib.staticfiles',                        'app01.apps.App01Config',                        'app01'                    ]	     ####################################################

应用介绍

# 项目就相当于是一所大学应用就相当于是二级学院	1. 计算机学院    2. 土木工程    3. 食品工程    ....    eg:    淘宝为例子    	1. 用户相关的   user        2.订单相关		order        3.地址相关		address        4. 商品相关		goods       # 应用名一定要见名知意### 一个项目至少有一个应用

标签:index,return,推导,10,server,django,path,Django,安装
来源: https://www.cnblogs.com/wuzhixian/p/15119967.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有