二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

这篇具有很好参考价值的文章主要介绍了二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop

小淼Develop的个人空间-小淼Develop个人主页-哔哩哔哩视频

本篇文章主要讲述:快速上手,pythonweb开发Django框架

目录

Django框架

工作机制

获取请求方式

GET/POST方式

URL路由传值

【响应】HttpResponse

【响应】读取HTML的内容 + 渲染(替换) -> 字符串,返回给用户浏览器。

重定向路由

 文末小案例(用户登录简单案例)

login.html:

url_lqj.html(默认生成模板)

urls.py文件注册路由:

views.py文件函数代码:


Django框架

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛手Django Reinhardt来命名的。Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性 [2] 。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。

工作机制

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 文章来源地址https://www.toymoban.com/news/detail-436870.html

获取请求方式

GET/POST方式

这里我就以GET请求方式为例:

在templates文件夹里创建一个url_lqj.html文件。

并在urls.py注册页面路由:

path('login/', views.login)

views.py文件中的函数:

def url_lqj(request):
    print(request.method)

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

URL路由传值

基于上面的演示,在views.py文件中的函数,修改为:

def url_lqj(request):
    print(request.GET)
    return render(request,'url_lqj.html')

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

【响应】HttpResponse

说明:(“返回内容”),内容字符串返回给请求者。

基于上面的演示,在views.py文件中的函数,修改为:

def url_lqj(request):
    return HttpResponse("返回内容")

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 

【响应】读取HTML的内容 + 渲染(替换) -> 字符串,返回给用户浏览器。

基于上面的演示,在views.py文件中的函数,修改为:

def url_lqj(request):
    return render(request,'url_lqj.html',{"title":"来了"})

基于上面的演示,在url_lqj.html文件中的函数,修改为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>url_lqj</title>
</head>
<body>
    <h1>某些请求{{ title }}</h1>

</body>
</html>

重定向路由

让浏览器重定向到其他的页面

基于上面的演示,在views.py文件中的函数,修改为:

def url_lqj(request):
    return redirect("https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343")

效果:当我们在浏览器输入我们写的路由,Django会利用该重定向给我们跳转到上当的地址(这里的地址是我的CSDN主页地址)

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 文末小案例(用户登录简单案例)

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="margin-top: 100px;display: flex;flex-direction: row;justify-content: space-around">
        <h1 style="color: orange">CSDN用户登录</h1>
    </div>

    <div style="margin-top: 100px;display: flex;flex-direction: row;justify-content: space-around">
        <form method="post" action="/login/">
            {% csrf_token %}
            <input placeholder="请输入用户名" name="admin" type="text" >
            <input placeholder="请输入密码" name="pwd" type="text" >
            <input type="submit" value="登录" />
        </form>
    </div>

    <div style="display: flex;flex-direction: row;justify-content: space-around;margin-top: 100px">
        <div>{{ tishi_1 }}</div>
    </div>
</body>
</html>

url_lqj.html(默认生成模板)

urls.py文件注册路由:

from django.urls import path
from app01 import views

urlpatterns = [
    # path('admin/', admin.site.urls),

    # path('index/', views.index),
    #联通新闻中心
    # path('news/', views.news),
    path('url_lqj/', views.url_lqj),
    path('login/', views.login)
]

views.py文件函数代码:

说明:

def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    else:
        print(request.POST)
        username = request.POST.get("admin")
        userpwd = request.POST.get("pwd")
    if username == 'lqj' and userpwd == '123':
        return redirect("https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343")
    else:
        tishi ="账号或密码错误"
        return render(request, "login.html",{"tishi_1":tishi})

上面代码:

1.使用request.method返回用户访问时的请求方式,判断并进入相应前端路由

2.如果判断对,进入login.html页面

3.否则,获取用户post的数据(表单中提交的数据)

4.判断用户输入的账号和密码是否与设置的一致

5.一致,则重定向页面为:

https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343

6.不一致,携带tihsi中的字符串,返回给login.html文件

from django.shortcuts import render, HttpResponse, redirect
def url_lqj(request):
    # request是一个对象,封装了用户发送过来的所有请求的数据

    # 获取请求方式 GET/POST
    # print(request.method)
    # 在URL上传递的值,比如:url_lqj/lqj=123&qqq=123
    # print(request.GET)
    # 4.【响应】HttpResponse(“返回内容”),内容字符串返回给请求者。
    # return HttpResponse("返回内容")
    # 5.【响应】读取HTML的内容 + 渲染(替换) -> 字符串,返回给用户浏览器。
    # return render(request,'url_lqj.html',{"title":"来了"})
    # 6.让浏览器重定向到其他的页面
    return redirect("https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343")


def login(request):
    if request.method == "GET":
        return render(request, "login.html")
    else:
        print(request.POST)
        username = request.POST.get("admin")
        userpwd = request.POST.get("pwd")
    if username == 'lqj' and userpwd == '123':
        return redirect("https://blog.csdn.net/lbcyllqj?spm=1000.2115.3001.5343")
    else:
        tishi ="账号或密码错误"
        return render(request, "login.html",{"tishi_1":tishi})

案例效果:

用户名或密码错误时:

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 用户名或密码正确时:

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 随后重定向成功:

二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)

 

到了这里,关于二挡起步——pythonweb开发Django框架,前端原生+Django后端框架002(附带小案例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端框架技术革新历程:从原生DOM操作、数据双向绑定到虚拟DOM等框架原理深度解析,Web开发与用户体验的共赢

    前端的发展与前端框架的发展相辅相成,形成了相互驱动、共同演进的关系。前端技术的进步不仅催生了前端框架的产生,也为其发展提供了源源不断的动力。 前端,即Web前端,是指在创建Web应用程序或网站过程中负责用户界面(User Interface, UI)构建与交互的部分,是用户与

    2024年04月26日
    浏览(45)
  • 【文件上传系列】No.2 秒传(原生前端 + Node 后端)

    【文件上传系列】No.1 大文件分片、进度图展示(原生前端 + Node 后端 Koa) 整理的思路是:根据文件的二进制内容生成 Hash 值,然后去服务器里找,如果找到了,说明已经上传过了,所以又叫做秒传(笑) 接着上一章的内容,因为前端和后端的服务都写在一起了,显得有点凌

    2024年02月05日
    浏览(35)
  • Django后端开发——静态文件

    B站网课:点击蓝色字体跳转 或者复制网址在浏览器访问:https://www.bilibili.com/video/BV1vK4y1o7jH?p=13vd_source=597e21cf34ffcdce468ba00be2177e8a 如:图片、css、js、音频、视频 以下一行代码是手动添加的,指定了一个目录——‘static’,将在该目录下查找静态文件 模板中访问静态文件 - im

    2024年02月19日
    浏览(28)
  • 企业级通用低代码开发平台——一二三应用开发平台发布1.0开源版本,前端vue3+element plus,框架vue-element-plus-admin,后端ssm+MybtaisPlus

    早些时候,也就是三月初的时候,定了一个长期计划,即再启程,研发应用开发平台(详见本专栏第一篇https://blog.csdn.net/seawaving/article/details/129334330)。 经过大概两个月的努力,低代码配置功能部分完成了雏形,并使用配置功能,将系统管理模块实现出来了,相当于进行了初

    2024年02月05日
    浏览(49)
  • VUE+Django实现前端开启摄像头录制存储视频并直接上传后端

    1.录制前 2.录制中 3.录制结束下载文件至本地 4.视频文件同时上传至后端接口 参考博客https://blog.csdn.net/wuchenlhy/article/details/79311234?spm=1001.2014.3001.5506 博主在后端这块写的十分简洁明了,可以直接参考实现开设后端简单文件上传接口的方法 参考文章: https://blog.csdn.net/XH_jing/a

    2024年02月14日
    浏览(43)
  • Django后端开发——Django应用及分布式路由

    B站网课:点击蓝色字体跳转 或者复制链接在浏览器打开:https://www.bilibili.com/video/BV1vK4y1o7jH?p=14vd_source=597e21cf34ffcdce468ba00be2177e8a 终端: 在settings.py的INSTALLED_APPS中添加应用名即可 news开头的交由news管理 music开头的交由music管理 Step1 - 主路由中调用include函数 语法:include(‘app名

    2024年02月19日
    浏览(32)
  • 使用django的APP在前端上传excel通过post传给后端读取并打印

    备研了,博客许久未更了,但是学期末的大作业,遇到了问题并成功解决了,不得不记录一下。 传数据表单必不可少 input用于文件类的上传,相当于先让前端收到这份文件 button用于表单的发送(submit 提交很好理解) 表单中的 action=“/insurance/upload_result” 表明我们要将文件数

    2024年02月10日
    浏览(50)
  • Django后端开发——模型层及ORM介绍

    B站网课:点击蓝色字体跳转 或者复制链接到浏览器打开:https://www.bilibili.com/video/BV1vK4y1o7jH?p=15vd_source=597e21cf34ffcdce468ba00be2177e8a 一般都有python3-dev,没有default-libmysqlclient-dev,需要安装default-libmysqlclient-dev 然后安装mysqlclient 若安装default-libmysqlclient-dev时报错‘pkg-config: not found’

    2024年02月19日
    浏览(39)
  • 若依框架前端静态资源到后端访问

    修改ruoyi-ui中的.env.production(二选一) 修改ruoyi-ui中的router/index.js,设置mode属性为hash 打包前端静态资源文件。 修改后端resources中的application.yml,添加thymeleaf模板引擎配置 修改后端pom.xml,增加thymeleaf模板引擎依赖 修改后端ResourcesConfig.java中的 addResourceHandlers,添加静态资源映

    2024年02月06日
    浏览(49)
  • 图像分类模型嵌入flask中开发PythonWeb项目

    图像分类是一种常见的计算机视觉任务,它的目的是将输入的图像分配到预定义的类别中,如猫、狗、花等。图像分类模型是一种基于深度学习的模型,它可以利用大量的图像数据来学习图像的特征和类别之间的关系,并且能够对新的图像进行分类。在本博客中,我将介绍如

    2024年02月08日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包