本文介绍: 二挡起步——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 年以开源的形式被释放出来。

工作机制

 

获取请求方式

GET/POST方式

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

templates文件夹创建一个url_lqj.html文件

并在urls.py注册页面路由

views.py文件中的函数

URL路由传值

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

响应】HttpResponse

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

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

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

 

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

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

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

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

<!DOCTYPE html&gt;
<html lang="en"&gt;
<head&gt;
    <meta charset="UTF-8"&gt;
    <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主页地址

 文末案例用户登录简单案例

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&amp;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})

案例效果

用户名或密码错误时:

 用户名或密码正确时:

 随后重定向成功:

 

原文地址:https://blog.csdn.net/lbcyllqj/article/details/130568107

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25276.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注