Django框架(一)

一、Python Web框架

1.Web应用程序处理流程

在这里插入图片描述

说明:1.首先浏览器给Web服务器发送HTTP请求。2.服务器接收到请求后解析请求,然后发送给Web后端框架。3.后端框架接收到请求后进行处理(如封装js、数据库交互、业务处理等操作)。4.处理结束后把HTTP的响应对象返回给服务器。5.服务器把接收到的HTTP响应对象报文最后返回给浏览器。6.最终浏览器得到想要的页面。

2.Web程序框架的意义
  • 用于搭建Web应用程序
  • 避免代码重复编写,只需要关心Web应用核心的业务逻辑实现
3.Web应用程序的本质
  • 接受并解析HTTP请求,获取具体的请求信息
  • 处理本次HTTP请求,即完成业务逻辑处理
  • 构造并返回处理结果——HTTP响应
4.Web框架的流程
  • 1.搭建工程程序
    • 工程的搭建
    • 工程的配置
    • 路由定义
    • 视图函数定义
  • 2.操作request对象
  • 3.构造response对象
  • 4.使用中间层、模板、数据库等

二、Django框架

1.django框架的介绍

Django,发音类似于(粘构)。是用python语言编写的开源web开发框架,并遵循MVC设计模式。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有很多功能强大的第三方插件,也可以开发出自己的工具包。使得Django有很强的可扩展性,它还强调快速开发和DRY原则。

2.Django的特点

1)重量级框架

  • 提供项目工程管理的自动化脚本工具

  • 数据库ORM支持(对象关系映射)

  • 模板

  • 表单

  • Admin管理站点

  • 文件管理

  • 认证权限

  • session机制

  • 缓存

    2)MVT设计模式

  • 先来了解一下另一种设计模式MVC,其核心思想是分工、解耦,让不同的代码之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

  • MVC模式的图解

在这里插入图片描述

  • M为Model,主要是对数据库的交互,对数据库中的数据进行增删改查操作

  • V为View,主要是用于封装,来生成展示给浏览器的html用户

  • C为Controll,主要是用于接受请求,处理业务逻辑,返回结果,与Model和View交互调度

    3)Django使用的是MVT设计模式

  • 其MVT设计模式是在MVC模式发展而来的

在这里插入图片描述

  • M为Model,与MVC中的M功能相同
  • V为View,与MVC中的C的功能相同
  • T为Template,与MVC中的V功能相同

三、工程搭建

1.创建虚拟环境(所有安装包的过程都需要联网)

mkvirtualenv 虚拟环境名字 -p python3
例:
mkvirtualenv django_env - p python3

2.安装Django包

进入虚拟环境后输入:
pip3 install django==1.11.11
安装完成后输入pip3 list查看一下是否存在django1.11.11

3.相关命令

# 虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 查看所有虚拟环境和切换虚拟环境
deactivate # 退出当前虚拟环境
# pip3
pip3 install # 联网安装包
pip3 unstall # 卸载安装包
pip3 list # 查看安装包
4.创建工程
  • 1.创建工程

    django-admin startproject 工程名字
    例:
    django-admin startproject zdemo
    # 这个工程会创建在当前目录下,所以想要在那个目录下创建工程就先到那个目录下,或者加上路径。
    
  • 2.工程目录说明

    cd zdemo # 进入工程目录
    tree  # 即可查看当前工程中的目录信息
    

    说明:

    • 与项目同名的目录是工程文件
    • settings.py是项目整体的配置文件
    • urls.py是项目的路由配置文件
    • wsgi.py是项目与WSGI协议兼容的Web服务器入口
    • manage.py是项目的管理文件

    3.运行开发服务器

    在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅供在开发阶段使用。

    运行服务器的命令如下:

    python3 manage.py runserver ip:端口  # ip和端口号可以不写,默认是127.0.0.1 和 8000
    

    4.验证

    此时在浏览器输入127.0.0.1:8000便可以看到效果

]

5.创建项目的子应用

在web应用中,通常有一些业务逻辑功能模块是在不同的项目中都可以用到的,所以在开发的过程中通常将项目拆分为不同的子功能模块,各功能模块间保持相对的独立,在其他工程项目中需要用到某个特定给功能的模块时,可以将该模块代码整体复制过去,达到复用。

Django的视图编写也是放在子应用中的

  • 1.创建子应用

    python3 manage.py startapp 子应用名称
    例:
    python3 manage.py startapp params
    # 需要先进入的工程目录下再进行创建子应用
    

    执行后,可以看到工程目录中多了一名为params的子目录

  • 2.子应用目录说明

    • admin.py文件是网站的后台管理站点的配置文件
    • apps.py文件是配置当前子应用的相关信息
    • migrations是用于存放数据库迁移历史文件
    • models.py是用于保存数据库模型类
    • tests.py文件是用于开发测试的
    • views.py文件是编写Web应用视图函数
  • 3.注册安装子应用

    创建出来的子应用目录虽然被放到了工程项目目录中,但是django工程不能立即直接使用该子应用,需要在注册安装后才能使用。

    在工程配置文件settings.py中,INSTALLED_APPS保存了工程已经注册安装的子应用。

    • 此时需要将子应用的配置文件信息apps.py中的Config类添加到这个列表中。
    • 例如,将刚创建的params子应用添加到工程中,可以在INSTALLED_APPS列表中添加:
    • ‘params.apps.ParamsConfig’
6.创建视图

视图是用来编写web应用的业务逻辑。Django的视图是定义在子应用views.py中的

  • 1.创建视图

    打开刚创建的params模块,在views.py中编写视图代码

    from django.http import HttpResponse
    
    def index(request):
        
        return HttpResponse("好久不见..")
    
    

    说明:

    • 视图函数的第一个参数必须定义,用于接受Django构造的包含了请求数据的HttpRequest对象,通常名为request
    • 视图函数的返回值必须为一个响应对象,不可以想Flash一样直接返回一个字符串,可以将要返回的字符串都放入HttpResponse对象中
  • 2.定义路由URL

    • 1)在子应用中创建一个urls.py的文件用于保存该应用的路由(可从主路由中复制)

    • 2)在params/urls.py文件中定义路由信息

      from django.conf.urls import url
      from . imrpot views
      
      urlpatterns = {
          # 添加
          url(r'^login/$', views.index),
      }
      
      
  • 3.在工程总路由zdemo/urls.py中添加子应用的路由

    from django.conf.urls import urls, include
    from django.contirb import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls), # django默认的
        # 添加
        url(r'^users', include('params.urls')),
        
    ]
    
    

    说明:

    • 使用include来将子应用params里的全部路由包含进工程路由中
    • r’^users’决定了params的子应用的所有路由都/users/开头,如我们刚才定义的视图login,最终访问的时候的完整路径为/users/login/。
  • 4.启动运行测试

    python manage.py runserver
    
    

    在浏览器中输入127.0.0.1:8000/users/login/

7.配置文件

settings.py配置文件中的主要内容描述

    1. BASE_DIR

      表示当前工程的根目录,Django会以此来定位工程内的相关文件,我们也可以通过使用该参数来构造文件路径

    2. DEBUG

      调试模式,创建工程后初始值为True,也就是说默认工作在调试模式下

      作用:

      • Django程序出现异常的时候,向前端显示详细的错误追踪信息

      注:部署线上运行的Django不要运行在调试模式下,记得在配置文件中修改DEBUG=False

    3. 本地语言和时区

      初始化的工程语言和时区默认为英语和UTC标准时区

      将语言和时区改为中国信息

      LANGUAGE_CODE = ‘zh-hans’

      TIME_ZONE = ‘Asia/Shanghai’

8.静态文件

项目中的CSS、图片、js都是静态文件。一般会将静态文件放在一个单独的目录中,以方便管理。在html页面中调试时,也需要指定静态文件的路径,Django中提供了一种解析方式配置静态文件路径。静态文件可以放在项目的根目录下,也可以放在应用的目录下,不过有些静态文件在项目中的通用的,所以推荐放在项目的根目录下,方便复用和管理。

为了提供静态文件,需要配置两个参数:

  • STATICFILES_DIRS=[]存放查找静态文件的目录,接受的是list
  • 例如查找当前项目工程中的static_img静态文件需要设置:
  • STATICFILES_DIRS=[os.path.join(BASE_DIR,‘statc_img’)]
  • STATIC_URL 默认存在,不需要更改

注意:

  • 仅在调试模式下能对外提供静态文件
9.路由说明

在这里插入图片描述

1.路由定义位置

Django的主要路由信息定义在工程同名目录下的urls.py文件中,该文件是Django解析路由的入口。

每个子应用为了保持相对独立,可以在各个子应用中定义属于自己的urls.py来保存子应用的路由。然后主路由文件中包含各个子应用的子路由数据。

2.路由解析顺序

Django在接收到一个请求时,从主路由文件中的urlpatterns列表中由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls中的urlpatterns列表由上至下的进行查询。

值得关注的是由上至下的顺序查询,有可能会使上面的路由屏蔽掉下面的路由,带来非预期的效果。例如:

urlpatterns = [
    url(r'^say', views.say),
    url(r'^sayhello', views.sayhello),
]

即使访问sayhello/路径,预期应该进入sayhello视图执行,但实际优先查找到了say路由规则也与sayhello/路径匹配,实际进入了say视图执行。

路由屏蔽主要有三个原因:

  • 路由列表由上至下进行查找
  • 正则匹配默认匹配一个就结束
  • 路由路径没有写$结尾

3.路由命名与reverse逆序解析

1)路由命名

在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。

在使用include函数定义路由时,可以使用namespace定义路由的命名空间,如

url(r'^users', include('params.urls', namespace = 'zhuluyou')),

命名空间表示,凡是params.urls中定义的路由,均属于namespace指明的zhuluyou名下。

命名空间的作用:避免不同子应用中的路由使用了相同名字发生冲突,使用命名空间区别开。

2)在定义普通路由的时候,可以使用name参数指明路由的名字,如

url(r'^login',views.index,name='ziluyou1'),
url(r'^login11',views.index11,name='ziluyou2'),

3)reverse逆向解析

需要使用reserver函数,根据路由名称,返回具体的路径,如

from django.urls import reverse
def index(request):
  	url_path = reverse("zhuluyou:ziluyou1") # 返回/users/login

说明:

  • 对于未指明namespace的,reverse(“name”)
  • 对于指明namespace的,reverse(“namespace:name”)

4)路由结尾斜线 / 的说明

Django中定义路由时,通常以斜线/结尾,其好处是用户访问不以斜线/结尾的相同路径时候,Django会把用户重定向到以斜线/结尾的路径上,而不会返回404,如

urlpatterns = [
    url(r'^index/$',views.index,name = 'index'),
]
# 用户访问index或者index/网址均能访问到index视图

四、请求Request参数

1.URL路径参数

在定义路由URL时,可以使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图的传入参数。

  • 命名参数按名字传递,如

    url(r'^weather/(?P<city>\w+)/(?P<year>\d{4})/$',views.weather),
    
    def weather(request, year ,city):
        print("city = %s" % city)
        print("year = %s" % year)
        return HttpResponse("这是路径传参的网页!")
    
    
    

2.查询参数

获取请求路径中的查询字符串参数(如?k1=v1&k2=v2)可以通过request.GET属性获取。返回QueryDict对象。

def chaxun(request):
    a = request.GET.get('a')
    b = reuqest.GET.get('b')
    alist = requqest.GET.getlist('a')
    print(a)   
    print(b)
    print(alist)
    return HttpResponse("这是查询传参的网页!")

注意:查询字符串不区分请求方式,即使客户端使用POST方式请求,依然可以通过request.GET方式获取参数

HttpRequest对象的属性GET、POST都是QueryDict类型的对象

与python字典不一样,QueryDict类型的对象用来处理一键之值的情况

  • 方法get():根据键获取值

    如果一个键有多个值,那将获取最后一个值

    如果键不存在则返回None,但可以设置默认值

    dict.get('键',默认值)
    # 可简写为
    dict['键']
    
    
  • 方法getlist():根据键获取值,值以列表的方式返回。可以获取指定键的所有值

    如果键不存在则返回空列表[],也可以设置默认值

    dict.getlist('键',默认值)
    
    

3.请求体参数

请求体参数分为表单和非表单

请求体数据格式不固定,可以是表单类型的字符串,也可以是JSON字符串,XML字符串,应该区别对待。

可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE

Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试的时候可以关闭CSRF防护机制。

注释掉图中的中间行。
在这里插入图片描述

1)表单类型Form Data

前端发送的表单类型的请求体数据,可以通过request.POST属性获取,返回QueryDict对象

def biaodan(requqest):
    a = request.POST.get('a')
    b = request.POST.get('b')
    alist = request.POST.getlist('a')
   	print(a)
    print(b)
    print(alist)
    return HttpResponse("这是表单类型传参的请求体数据网页!")

注意:request.POST只能用来获取POST方式请求的表单数据

2)非表单类型Non-Form Data

非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性来获取最原始的请求体数据,返回bytes类型

def feibiaodan(requqest):
    # 先将非表单的请求体数据转换为原始数据
    json_str = request.body
    # 然后再解码
    json_str = requqest.decode()
    # 再将字符类型转换为字典类型
    import json
    json_dict = json.loads(json_str)
    print(json_dict)
    return HttpResponse("这是非表单类型的请求体数据网页!")
    

说明:此时的json_dict是字典类型,所以可以自行操作。

4.请求头参数

可以通过reuqest.META属性来获取请求头headers中的数据,request.META为字典类型

常见的请求头如下:

CONTENT_LENGTH – The length of the request body (as a string).
CONTENT_TYPE – The MIME type of the request body.
HTTP_ACCEPT – Acceptable content types for the response.
HTTP_ACCEPT_ENCODING – Acceptable encodings for the response.
HTTP_ACCEPT_LANGUAGE – Acceptable languages for the response.
HTTP_HOST – The HTTP Host header sent by the client.
HTTP_REFERER – The referring page, if any.
HTTP_USER_AGENT – The client’s user-agent string.
QUERY_STRING – The query string, as a single (unparsed) string.
REMOTE_ADDR – The IP address of the client.
REMOTE_HOST – The hostname of the client.
REMOTE_USER – The user authenticated by the Web server, if any.
REQUEST_METHOD – A string such as "GET" or "POST".
SERVER_NAME – The hostname of the server.
SERVER_PORT – The port of the server (as a string).

具体使用:

def requqest_headers(requqest):
    content_length = request.META["CONTENT_LENGTH"]
    HTTP_ACCEPT = request.META["HTTP_ACCEPT"]
    zidingyi = request.META.get("HTTP_zidingyi")
    return HttpResponse("这是测试请求头参数的网页!")

5.了解其他HttpRequest对象属性

  • method:一个字符串,表示请求使用的HTTP,常用:‘GET’,‘POST‘。
  • user:请求的用户对象
  • path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分
  • encoding:一个字符串,表示提交的数据的编码模式,一般默认为utf-8
  • FILES:一个类似于字典的对象,包含所有的上传文件

五、响应对象操作response

视图在接受请求并处理后,必须返回HttpResponse对象或者子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。

1.HttpResponse

可以使用django.http.HttpResponse来构造响应对象

HttpResponse(content = 响应体,content_type=响应体数据类型,status=状态码)

也可以通过HttpResponse对象属性来设置响应体、状态吗

  • content:表示返回的内容
  • status_code:表示返回的HTTP响应状态码
  • 响应对象[‘key’] = value:表示设置给属性赋值
from django.http import HttpResponse

# 通过参数返回
def res_header(request):
    return HttpResponse(content="响应体的内容网页",content_type="text/html; charset=utf-8",status=521)
# 通过属性设置
def res_header(request):
    # 设置响应对象
    response = HttpResponse("这是响应体测试的网页!")
    response["Iamheader"] = "response_header"
    response.content="这这个才是最后显示在网页中的内容!会把之前的覆盖!"
    response.status_code= 500
    return response


2.HttpResponse子类

Django提供了一系列HttpResponse的子类,可以快速设置状态码

HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500

3.JsonResponse

若要返回json数据,可以使用JsonResponse来构造响应对象,作用:

  • 1.帮助我们将数据转换为json字符串
  • 2.设置响应头Content-Type = application/json
from django.http import JsonResponse

def jsonR(request):
    dict_data = {"name":"wtt","age",22,"address":"fux"}
    return JsonResponse(dict_data)


4.rediect重定向

比如我们输入www.baidu.com 会自动重定位到https://www.baidu.com/ 这个过程就是重定向

from django.shortcuts import redirect

def Redirect(request):
    # 为了正确性所以这里使用reverse先转换为路径
    url_path = reverse("namespace:name")
    # 使用重定向
    return redirect(url_path)
 

说明:当用户输入网址调用到Redirect函数时候会重定向到reverse中所指明的路径

王涛涛.
关注 关注
  • 26
    点赞
  • 150
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Django框架资料
07-23
Django基础和MVT架构的思维导图,里面内容还有教学资料,源代码,一些学习笔记,截图等
Django框架模板介绍
12-25
定义:在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具 模板的设计方式实现了我们MVT中VT的解耦,VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用 模板处理分为两个过程 ① 加载 ② 渲染 模板主要有两个部分 ① HTML静态代码 ② 动态插入的代码段(挖坑,填坑) 模板中的动态代码段除了做基本的静态填充,还可以实现一些基本的运算,转换和逻辑。 模板中的变量: 视图传递给模板的数据,遵守标识符规则 语法{{ var }} 模板中的标签 语法 {% tag %} 作用 加载外部传入的变量 在输出中创建文本 控制循环或逻辑 {
python--Django框架
moumumu的博客
12-20 9705
这一节主要是通过一个简单的案例,让我了解Django框架,以及Django的请求生命周期,当然其中涉及到了后台管理以及前端页面等等
Django详细教程(一) - 基本操作
最新发布
2203_75327677的博客
03-30 1195
Django是一个高级的Python Web框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。它是免费和开源的,有活跃繁荣的社区,丰富的文档,以及很多免费和付费的解决方案。
django框架.docx
03-14
django框架.docx
Django框架
m0_59073956的博客
02-04 6714
Django框架详解
python——Django 框架
weixin_64672480的博客
11-27 3658
根据书籍表结构设计模型类:模型类:BookInfo书籍名称字段:name根据人物表结构设计模型类:模型类:PeopleInfo人物姓名字段:name人物性别字段:gender外键约束:book外键要指定所属的模型类说明 :书籍-人物的关系为一对多. 一本书中可以有多个英雄.不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.根据数据库表的设计在models.py中定义模型类,继承自'''1.定义模型类2.模型迁移。
django框架全解
General_zy的博客
01-17 6734
MVC就是把Web应用分为模型(M),控制器©和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求。Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Templa
Python学习笔记-Django框架基础,APP,数据模型,后台管理,路由
向往的是:佛祖堂前的鱼,静静听禅。
07-25 3293
Django框架Python的常用web框架,遵循 MVC 设计模式的框架,采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布。ORM:用于创建模型的对象关系映射;为最终用户设计较好的管理界面;URL 设计;
Django指令和配置文件
qq_42181333的博客
10-09 940
创建新文件以及配置虚拟环境 1. 简介 Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"
10.1、Django框架入门--后台管理
qq_43604376的博客
12-19 2876
pythonDjango框架
Python学习笔记——Django入门
唯恋殊雨的博客
08-22 802
目录 软件框架 Django简介 创建图书管理项目 模型设计 后台管理 视图 模板 项目完成 软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。从某种意义上来说,公司就是一种框架。那么对应到软件设计上来说,软件框架是由其中的各个模块组成的,每个模块负责...
python——Django框架
m0_65995252的博客
10-03 4353
Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
Django入门简介
weixin_45889347的博客
02-08 5093
Django入门
一、Django基础介绍
热门推荐
魏志标的博客
05-15 3万+
一、Django介绍 Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django 是一个开放源代码的 Web 应用框架,由 Python 写成。Django 遵守 BSD 版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1.0 。 Django学习线路 Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。 这个MVT模式并
Django框架认知
沉觞的博客
07-14 629
Django框架的特点、MVC和MTV设计模式
写一个Django框架
05-13
写一个完整的Django框架需要很多细节和步骤,以下是一个简单的教程,帮助你开始构建你的第一个Django框架: 1. 安装Django 首先需要在你的电脑上安装Django。你可以使用pip install django命令来安装最新的版本。如果你想要安装一个特定的版本,你可以使用pip install django==x.x.x命令,其中x.x.x是你想要安装的版本号。 2. 创建Django项目 使用django-admin startproject命令来创建一个新的Django项目。在终端运行以下命令: ``` django-admin startproject myproject ``` 这将创建一个myproject文件夹,其中包含一个名为manage.py的文件和一个名为myproject的文件夹。 3. 创建Django应用程序 使用manage.py startapp命令来创建一个新的Django应用程序。在终端运行以下命令: ``` python manage.py startapp myapp ``` 这将创建一个名为myapp的文件夹,其中包含一个名为views.py的文件和一个名为models.py的文件。 4. 配置数据库 打开myproject/settings.py文件,找到DATABASES设置。在这里,你可以设置数据库的连接信息。默认情况下,Django使用SQLite作为默认数据库。如果你想使用其他类型的数据库,你需要安装相应的数据库驱动程序,并在这里设置连接信息。 5. 创建模型 在你的应用程序中,打开models.py文件。在这里,你可以定义你的数据模型。例如,如果你想创建一个名为Person的模型,包含姓名和年龄字段,你可以这样写: ``` from django.db import models class Person(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() ``` 6. 创建视图 在你的应用程序中,打开views.py文件。在这里,你可以定义你的视图函数。例如,如果你想创建一个名为home的视图,你可以这样写: ``` from django.shortcuts import render from django.http import HttpResponse def home(request): return HttpResponse("Hello, world!") ``` 7. 创建URL路由 在你的应用程序中,打开urls.py文件。在这里,你可以定义URL路由。例如,如果你想将home视图映射到根URL,你可以这样写: ``` from django.urls import path from . import views urlpatterns = [ path('', views.home, name='home'), ] ``` 8. 运行Django服务器 在终端中,进入到myproject文件夹,并运行以下命令: ``` python manage.py runserver ``` 这将启动Django服务器,并将你的应用程序运行在localhost:8000端口上。在浏览器中打开http://localhost:8000/,你应该能够看到"Hello, world!"消息。 以上是一个简单的Django框架的创建步骤。当然,这只是一个入门级别的例子,实际应用中涉及到的内容还有很多。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Python实现学生管理系统(功能全面) 42470
  • Django框架(一) 26874
  • Python实现图书管理系统 17203
  • Python搭建TCP客户端和服务器 16739
  • 距离向量(欧式距离、曼哈顿距离等) 16089

最新评论

  • Python实现学生管理系统(功能全面)

    谎乐: 用Django

  • 机器学习工作流程

    gangtiexia003: 博主,这文章写的很清楚详细,有没有打算出一个机器学习的教程

  • Python实现学生管理系统(功能全面)

    clouds443: 列表里的元素不能被修改吧 应该是

  • Python实现学生管理系统(功能全面)

    lxw-pro: 博主写的不错,支持博主

  • 机器学习-交叉验证和网格搜索(带案例)

    新手上路,请多指教: 博主这里为什么没有划分验证集做超参优化?是直接在测试集上做的

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Redis二次学习笔记
  • scrapyd和gerapy介绍和基本使用
  • scrapy、scrapy_redis、scrapy_splash的配置
2021年1篇
2020年46篇
2019年79篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司朝阳seo网站优化公司本溪网页设计张家口SEO按效果付费哪家好海西关键词按天收费价格郑州网站优化按天扣费报价天门网站搜索优化报价海东营销网站哪家好忻州网站优化按天收费哪家好北京阿里店铺托管报价长葛百度网站优化多少钱喀什网站关键词优化公司霍邱营销型网站建设哪家好遵义关键词排名哪家好广安高端网站设计价格南通高端网站设计价格南宁阿里店铺托管推荐合肥企业网站设计乌海阿里店铺运营哪家好湘潭品牌网站设计价格坑梓网站优化推广推荐遵义seo网站优化公司钦州网站改版公司本溪建站多少钱泰州阿里店铺运营云浮网站建设设计价格邵阳百度竞价包年推广价格酒泉百度爱采购哪家好甘孜高端网站设计多少钱德宏网站改版推荐普洱百搜标王价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化