django基础

时间:2019-10-22
本文章向大家介绍django基础,主要包括django基础使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. http请求方法

  1. GET

    GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456
    GET提交的数据大小有限制(因为浏览器对URL的长度有限制)
  2. HEAD

  3. POST

    POST方法是把提交的数据放在HTTP包的请求体中.而POST方法提交的数据没有限制.
  4. PUT

  5. DELETE

  6. TRACE

  7. OPTIONS

  8. CONNET

2. 状态码

1xx 请求已接收,进一步处理
2xx 请求已接收,也正常处理 200 OK
3xx 重定向
4xx 请求错误 403,404
5xx 服务的错误

3. http 请求和响应的格式

GET / HTTP/1.1        请求行       方法 协议  版本
Host: 127.0.0.1:8003  请求头       
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
#空行

请求数据(请求体)  username=ziwen password=666

get请求 请求数据部分是没有数据的,get请求的数据在url上,在请求行里面,有大小限制,常见的get请求方式: 浏览器输入网址,a标签
post请求 请求数据在请求体(请求数据部分) ,数据没有大小限制, 常见方式:form表单提交数据

4. 请求和响应的步骤

1. 在浏览器的地址栏输入url地址,回车,发出一个get请求
2. django接收到请求,根据url的路径找到对应的函数,执行函数拿到结果
3. django将将结果封装成http响应的报文返回给浏览器
4. 浏览器接收响应,断开连接,分析数据

5. web框架实现的功能

1. socket接发消息
2. 根据不同的路径返回不同的内容
3. 返回HTML页面
4. 返回动态页面(模板渲染 字符串的替换)

6. 关于form表单中input的name属性

 <form action="http://127.0.0.1:8848" method="get">
        用户名:<input type="text" name="username">
        密码:<input type="text" name="pwd">
        <input type="submit">
  </form>
方法为get时,只有设置了 name 属性的表单元素才能在提交表单时传递它们的值

7. MVC和MTV框架模式

MVC:
    M -- models 数据库相关
    V -- views  视图相关(逻辑)
    C -- controller url控制器(url分发器,路由分发)
django -- MTV
    M -- models 数据库相关
    T -- templates HTML相关 html就是模板
    V -- views  视图相关(逻辑)
    
    + controller url控制器(url分发器,路由分发)

8. django下载安装

1. 下载
    pip install django==1.11.9 ***
    pip3 install django==1.11.9 -i http://xxxxxx  指定源
2. 创建项目
    django-admin startproject mysite   
    #创建了一个名为"mysite"的Django 项目
3. 创建应用
    python manage.py startapp blog   
    #通过执行manage.py文件来创建应用,执行这句话一定要注意,你应该在这个manage.py的文件所在目录下执行这句话,      因为其他目录里面没有这个文件
    python manage.py startapp blog2  
    #每个应用都有自己的目录,每个应用的目录下都有自己的views.py视图函数和models.py数据库操作相关的文件
启动项目
    python manage.py runserver  默认是127.0.0.1:8000
    python manage.py runserver 127.0.0.1  默认端口号是8000
    python manage.py runserver 127.0.0.1:8001 
    

9. django的url路由分发

    # 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 +'月' +'所有文章')

10 一些request方法

request.method    得到请求方式 GET POST 等   字符串类型
request.POST      得到提交的数据,querydict类型
request.POST.get("username")   直接根据键取值,结果字符串类型,无此键时,返回None
models.类名.objects.all()   查询所有的数据 queryset对象
models.类名.objects.get(username='alexs',password='alexdsb')   
    #models对象,有且只能一个(不存在或者多条数据就报错)(不建议使用)
models.类名.objects.filter(username='alexs',password='alexdsb') queryset对象

11. orm与数据库的对应关系

django                        数据库
类                            表
对象(类的实例对象)             数据行记录
属性                          字段

原文地址:https://www.cnblogs.com/lvweihe/p/11719401.html