Django框架下载与Django框架初识

Django下载安装

#下载
    pip3 install django==1.11.9
    pip3 install django==1.11.9 -i http://xxxxxx  指定源
#创建项目
    django-admin startproject mysite   创建了一个名为"mysite"的Django 项目
#启动项目
    python manage.py runserver  默认是127.0.0.1:8000
    python manage.py runserver 127.0.0.1  默认端口号是8000
    python manage.py runserver 0.0.0.0:80 修改IP和端口
#创建应用
    python manage.py startapp blog   #通过执行manage.py文件来创建应用,执行这句话一定要注意,你应该在这个manage.py的文件所在目录下执行这句话,因为其他目录里面没有这个文件

Django项目目录结构

#manage.py -----
    Django项目里面的工具,通过它可以调用django shell和数据库,启动关闭项目与项目交互等,不管你将框架分了几个文件,必然有一个启动文件,其实他们本身就是一个文件。
#settings.py ----
    包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
#urls.py -----
    负责把URL模式映射到应用程序。
#wsgi.py ----
    runserver命令就使用wsgiref模块做简单的web server,后面会看到renserver命令,所有与socket相关的内容都在这个文件里面了,目前不需要关注它。
'''创建的的应用的目录结构'''
#models.py
    之前我们写的那个名为model的文件就是创建表用的,这个文件就是存放与该app(应用)相关的表结构的
#views.py
    存放与该app相关的视图函数的

admin后台管理系统

#admin是django提供的管理数据的一个平台,可以查看项目的所有数据,包括查看数据,编辑数据,等
1:# 在manage.py Task中创建超级用户 :createsuperuser,输入创建账号,密码,创建用户
2:# 在应用的admin文件中添加表,在admin中就可以查看到表了,可以表进行操作
    admin.site.register(models.Author)
    admin.site.register(models.AuthorDetail)
    admin.site.register(models.Publish)
    admin.site.register(models.Book)

Djiango路由分发

# 无名分组参数
    url(r'^articles/(\d+)/(\d+)/', views.articles), #articles/2019/9/
    def articles(request,year,month):  # 位置参数 2019  9
         print(year,type(year)) #2019 <class 'str'>  #匹配出来的所有数据都是字符串
         print(month)
         return HttpResponse(year+'年'+ month +'月' +'所有文章')
# 有名分组参数
    url(r'^articles/(?P<xx>\d+)/(?P<oo>\d+)/', views.articles), #articles/2019/9/
    #xx=2019  oo=9  关键字传参
    def articles(request,oo,xx):  # 关键字传参 2019  9
        print(xx,type(xx)) #2019 <class 'str'>  #匹配出来的所有数据都是字符串
        print(oo)
        return HttpResponse(xx+'年'+ oo +'月' +'所有文章')

POST请求数据传输

#方式一:
def login(request):
    #获取请求的方式是GET还是POST
    path=request.method
    #当请求方式是GET的时候返回login页面
    if path=='GET':
        return render(request,'login.html')
    else:
        #为POST的时候,判断用户名和密码,返回首页或者返回登陆页面
        name=request.POST.get('username')
        password=request.POST.get('password')
        if name=='lijie'and password=='123456':
            return render(request,'home.html')
        else:
            return render(request,'login.html')
#方式二:
def login(request):
    #获取请求的方式是GET还是POST
    path=request.method
    #当请求方式是GET的时候返回login页面
    if path=='GET':
        return render(request,'login.html')
    else:
        #为POST的时候,判断用户名和密码,返回首页或者返回登陆页面
        #request.POST.dict()可以将获取的数据变成一个字典的形式,通过键值的形式取值
        data=request.POST.dict()
        if data['name']=='lijie'and data['password']=='123456':
            return render(request,'home.html')
        else:
            return render(request,'login.html')

HTTPrequest对象

from django.shortcuts import render
def login(request):
    #request参数就是HTTPrequest对象
    print(request)#<WSGIRequest: GET '/login/'>

    #返回请求的路径,纯路径
    print(request.path)#/login/

    #返回请求的路径,纯路径
    print(request.path_info)#/login/

    #返回的是请求的全路径包括参数,不包含ip地址和端口,没有参数就返回纯路径
    print(request.get_full_path())#/login/?a=1&b=1

    #查看当前的请求类型
    print(request.method)#GET 一般常见的是GET和POST

    #返回的是一个QueryDict对象,是HTTP通过GET请求从客户端发送的请求数据
    #可以使用get方法获取对象的值:name=request.GET.get('username')
    print(request.GET)#<QueryDict: {}>

    # 返回的是一个QueryDict对象,是HTTP通过POST请求从客户端发送的请求数据
    # 可以使用get方法获取对象的值:name=request.POST.get('username')
    print(request.POST)#<QueryDict: {}>
    注意:键值对的值是多个的时候,比如checkbox类型的input标签,select标签,需要用
    request.POST.getlist("hobby")

    #返回HTTP请求中的请求体,是byte类型,POST请求的数据就是在body中提取的,GET请求获取不到数据
    print(request.body)

    #返回的是一个python字典,包含所有的HTTP请求头信息
    print(request.META)
    return render(request,'login.html')

#META的常见值(了解):
    CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。
    CONTENT_TYPE —— 请求的正文的MIME 类型。
    HTTP_ACCEPT —— 响应可接收的Content-Type。
    HTTP_ACCEPT_ENCODING —— 响应可接收的编码。
    HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。
    HTTP_HOST —— 客服端发送的HTTP Host 头部。
    HTTP_REFERER —— Referring 页面。
    HTTP_USER_AGENT —— 客户端的user-agent 字符串。
    QUERY_STRING —— 单个字符串形式的查询字符串(未解析过的形式)。
    REMOTE_ADDR —— 客户端的IP 地址。
    REMOTE_HOST —— 客户端的主机名。
    REMOTE_USER —— 服务器认证后的用户。
    REQUEST_METHOD —— 一个字符串,例如"GET" 或"POST"。
    SERVER_NAME —— 服务器的主机名。
    SERVER_PORT —— 服务器的端口(是一个字符串)。
    #示例:
    请求中的任何 HTTP 首部转换为 META 的键时,都会将所有字母大写并将连接符替换为下划线最后加上 HTTP_  前缀。
    所以,一个叫做 X-Bender 的头部将转换成 META 中的 HTTP_X_BENDER 键。

HTTPResponse对象

def home(request):
    #向前端返回一个字符串
    return HttpResponse('返回一个字符串')
    #向前段返回一个HTML页面
    return render(request,'home.html')
    #临时重定向,将请求指向另一个页面,括号里面写路径
    return redirect('/login/')

原文地址:https://www.cnblogs.com/luckinlee/p/11622229.html

时间: 2024-10-10 10:52:22

Django框架下载与Django框架初识的相关文章

Django web框架 下载安装 简单项目搭建

什么是web应用? Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件 应用程序有两种模式C/S.B/S.C/S是客户端/服务器端程序,也就是说这类程序一般独立运行.而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行.WEB应用程序一般是B/S模式.Web应用程序首先是“应用程序”,和用标准的程序语言,如C.C++等编写出来的程序没有什么本质上的不同.然而Web应用程序又有自己独特的地

Django 框架篇: 一. Django介绍; 二. 安装; 三. 创建项目;

一. web框架:   框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. import socket def handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\

Django基础一之web框架的本质

Django基础一之web框架的本质 一 web框架的本质及自定义web框架 ? 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了. 通过对socket的学习,我们知道网络通信,我们完全可以自己写了,因为socket就是做网络通信用的,下面我们就基于sock

Django自带用户验证框架

一  分析源码 User   Django的标准库存放在 django.contrib 包中.每个子包都是一个独立的附加功能包. 这些子包一般是互相独立的,不过有些django.contrib子包需要依赖其他子包,其中django.contrib.auth 为Django的用户验证框架 1.  导入方法 from django.contrib.auth.models import User 2.  分析User继承链 User --> AbstractUser  --> (AbstractBa

Django学习篇(web框架的由来)

Python的WEB框架有 Django.Tornado.Flask 等多种 ,Django相较与其他WEB框架其优势为: 大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本模式:M    V     C (对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.) #!/usr/bin/env python #coding:utf-8 import socket def handle_request(clie

Python最火框架入门了吗?微型框架 Flask与Web框架Django示例!

Flask Python 微型的Web 框架,以Jinja2 模板引擎与Werkzeug WSGI工具箱为基础. Flask使用简便,使用extension增加其他功能.Flask没有窗体验证工具.默认使用的SQL.但是,Flask保存了扩增性,能够利用Flask-extension加入ORM.文件上传窗体验证工具.各种开放式身份验证技术等这些功能. 特性: 示例: 启动: 非常流行的一个Python必学框架. Django Python 语言驱动的一个开源模型-视图-控制器(MVC)风格的 W

django之前-----web应用与框架

一web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S. 下面来看一个简单的socket服务器 # -*- coding:utf-8 -*- import socket sk=socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen() while 1: conn,client_addr=sk.accept() conn

简单Django框架推导及Django安装介绍

小结 软件开发架构 c/s 架构 客户端 服务端 b/s 架构 浏览器 服务端 HTTP协议:超文本传输协议 四大特性 基于TCP/IP之上作用于应用层 基于请求响应 无状态(不保存状态,每次请求都认为是陌生的请求) 无连接 (一旦数据交互完成就断开连接) 对比:长连接(websocket(HTTP协议大补丁) 数据格式 请求格式: ? 请求首行(请求方式,协议版本......) ? 请求头(一大堆k:v键值对) ? \r\n ? 请求体(真正的数据 ,发post请求的时候才有,如果是get请求

Django框架之数据库ORM框架

首先,我来介绍一下什么是ORM框架: O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思.在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据.ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程. django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改