广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django 系列博客(三)
  • 127
分享到

Django 系列博客(三)

系列博客Django 2023-01-30 23:01:29 127人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 本篇博客介绍 Django 的前后端交互及如何处理 get 请求和 post 请求。 get 请求 get请求是单纯的请求一个页面资源,一般不建议进行账号信息的传输。 配置路由 from djanGo.conf.urls impo

前言

本篇博客介绍 Django 的前后端交互及如何处理 get 请求和 post 请求。

get 请求

get请求是单纯的请求一个页面资源,一般不建议进行账号信息的传输。

配置路由

from djanGo.conf.urls import url
from django.contrib import admin

import app.views as app_views
import newApp.views as new_views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', app_views.home),
    # 路由采用正则匹配, ^以什么开头 $以什么结果
    # 注: 当路由没有子路由是,才在末尾添加$
    url(r'^index/$', app_views.index),
    url(r'login', app_views.login_action),
    url(r'^new/index/$', new_views.index)
]

配置视图

from django.shortcuts import render, redirect

from django.Http import HttpResponse

# Create your views here.

# 每一个请求,都对应一个视图响应函数,来出现请求,完成响应
# def index(abc):
#     return HttpResponse('hello django')  # 第一个响应

import django.core.handlers.wsgi
def login_action(request):
    return render(request, 'login.html') # 第一个响应页面

# def home(request):
#     return redirect('/index/') # 第一个重定向

def home(request):
    return render(request, 'index.html')

def index(request):
    return redirect('/')

配置页面资源

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>主页</title>
</head>
<body>
    <h1 style="text-align: center">app的主页</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <h1 style="color: red">登录</h1>
</body>
</html>

post 请求

配置路由

from django.conf.urls import url
from django.contrib import admin

from app import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.home),
    url(r'^index/$', views.index),
    url(r'^login/$', views.login, name='lg'),
]

配置视图

from django.shortcuts import render, redirect
import pyMysql

# Create your views here.

def home(request):
    return render(request, 'index.html')

def index(request):
    return redirect('/')

'''
def login(request):
    print(request.method)
    # 如果获取GET请求的提交数据
    # import django.core.handlers.wsgi
    # print(type(request))
    # import django.http.request.QueryDict
    # print(type(request.GET))
    print(request.GET)
    # usr = request.GET['usr']  # 不安全
    usr = request.GET.get('usr', 'USR') # 安全, 第一个参数为数据的key, 第二个参数为默认值
    print(usr)
    pwd = request.GET.get('pwd') # 不设默认值,没有取到值时,返回值为None
    print(pwd)
    return render(request, 'login.html')
'''

from django.http import HttpResponse

def login(request):
    if request.method == 'GET':
        stus = request.GET.getlist('stu')
        print(stus)
        return render(request, 'login.html')

    # 没有GET分支, 发来的请求为POST
    usr = request.POST.get('usr')
    pwd = request.POST.get('pwd')
    print(usr, pwd)

    # 连接数据库 => ORM
    conn = pymysql.connect(host='localhost', port=3306, user='root', passWord='root', db='django')
    cur = conn.cursor(pymysql.cursors.DictCursor)
    # cur.execute('select * from user')
    # users = cur.fetchall()
    cur.execute('select * from user where usr=%s and pwd=%s', [usr, pwd])
    res = cur.fetchone()
    print(res)
    if res != None:
        return HttpResponse('登录成功')
    return HttpResponse('登录失败')

配置页面资源

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>主页</title>
{#    <link rel="stylesheet" href="./index.CSS">#}
{#    <link rel="stylesheet" href="/static/index.css">#}
{#    <link rel="stylesheet" href="/static/temp.css">#}

{#    <link rel="stylesheet" href="/ooo/index.css">#}
{#    <link rel="stylesheet" href="/ooo/temp.css">#}

{#    <link rel="stylesheet" href="/static/css/test.css">#}

    <link rel="stylesheet" href="/static/css/index.css">
</head>
<body>
    <h1 style="text-align: center">主页</h1>
    <img src="/static/img/001.png" alt="">
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css">
    <style>
        .box {
            border: 1px solid #ccc;
            padding: 20px;
            border-radius: 20px;
            height: 380px;
        }
    </style>
</head>
<body>
{#<button class="btn btn-warning"> 按钮</button>#}
{#<div class="btn-group">#}
{#    <button class="btn btn-default btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true"#}
{#            aria-expanded="false">#}
{#        Large button <span class="caret"></span>#}
{#    </button>#}
{#    <ul class="dropdown-menu">#}
{#        <li><a href="#">Action</a></li>#}
{#        <li><a href="#">Another action</a></li>#}
{#        <li><a href="#">Something else here</a></li>#}
{#        <li role="separator" class="divider"></li>#}
{#        <li><a href="#">Separated link</a></li>#}
{#    </ul>#}
{#</div>#}

<div class="container">
    <div class="box row col-sm-6 col-sm-offset-3">
        {# action: 没写 | http://localhost:8801/login | /login/ | {% url 'url_name' %} #}
        <form action="{% url 'lg' %}" method="GET">
{#            {% csrf_token %}#}
            <div class="form-group">
                <label for="usr">用户名:</label>
                <input type="text" class="form-control" name="usr" id="usr" placeholder="请输入用户名">
            </div>
            <div class="form-group">
                <label for="pwd">Password</label>
                <input type="password" class="form-control" name="pwd" id="pwd" placeholder="请输入密码">
            </div>
            <div class="checkbox">
                <label>
                    <input name="stu" type="checkbox" value="stu1"> 学生1
                </label>
                <label>
                    <input name="stu" type="checkbox" value="stu2"> 学生2
                </label>
                <label>
                    <input name="stu" type="checkbox" value="stu3"> 学生3
                </label>
            </div>
            <button type="submit" class="btn btn-info pull-right">登录</button>
        </form>
    </div>
</div>
{#<a href="/index/">前往主页</a>#}
</body>
<script src="/static/bootstrap-3.3.7-dist/js/Jquery-3.3.1.js"></script>
<script src="/static/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
</html>

前后端交互

Django请求生命周期

--结束END--

本文标题: Django 系列博客(三)

本文链接: https://www.lsjlt.com/news/180752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django 系列博客(三)
    前言 本篇博客介绍 django 的前后端交互及如何处理 get 请求和 post 请求。 get 请求 get请求是单纯的请求一个页面资源,一般不建议进行账号信息的传输。 配置路由 from django.conf.urls impo...
    99+
    2023-01-30
    系列 博客 Django
  • Django 系列博客(十三)
    前言 本篇博客介绍 Django 中的常用字段和参数。 ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True。当 model 中如果没有自增列,则会自动创建一个列名为 id 的列。 Integ...
    99+
    2023-01-30
    系列 博客 Django
  • Django 系列博客(二)
    前言 今天博客的内容为使用 Django 完成第一个 Django 页面,并进行一些简单页面的搭建和转跳。 命令行搭建 Django 项目 创建纯净虚拟环境 在上一篇博客中已经安装好了虚拟环境,所以用虚拟环境来安装指定版本的 Djang...
    99+
    2023-01-30
    系列 博客 Django
  • Django 系列博客(四)
    前言 本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改 ORM简介 ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库...
    99+
    2023-01-30
    系列 博客 Django
  • Django 系列博客(一)
    前言 学习了 python 这么久,终于到了Django 框架。这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一步步的学习,这系列博客不会像前端的那样水了(立个 flag),希望...
    99+
    2023-01-30
    系列 博客 Django
  • Django 系列博客(十二)
    前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询。 聚合查询 语法:aggregate(*args, **kwargs) # 计算所有图书的平均价格 from django.db.mode...
    99+
    2023-01-30
    系列 博客 Django
  • python+django博客simbl
    概述本博客系统基于Django-1.7.7开发而成,通过nginx+uwsgi运行于locvps,Python版本为 2.7.6。功能    1.文章、分类和页面的增删改查;    2.文章按年、月归档;    3.集成simditor富文...
    99+
    2023-01-31
    博客 python django
  • 基于django的个人博客网站建立(三)
    前言 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有的文章对象: def index(request): if request.method =...
    99+
    2023-01-31
    博客网站 django
  • python django系列(三)
    数据库,里面有各种宝贝,一个没有数据库的网站,提供的功能非常有限连接数据库mysql是最常用的数据库,这里将django和mysql连接。安装:easy_install MySQL-python 或 pip install MySQL-p...
    99+
    2023-01-31
    系列 python django
  • 利用Python Django实现简单博客系统
    第一节 - 基础 1. 简单的导览图,学会不迷路 对 Django 的评价:借用李清照的《鹧鸪天 桂花》来表达, 暗淡轻黄体性柔。情疏迹远只香留。何须浅碧深红色,自是花中第一流。 梅定妒,菊应羞。画阑开处冠中秋。骚...
    99+
    2022-06-02
    Python Django实现博客系统 Python Django
  • Django 博客开发教程 15 -
    在 使用 Nginx 和 Gunicorn 部署 Django 博客 中,我们通过手工方式将代码部署到了服务器。整个过程涉及到十几条命令,输了 N 个字符。一旦我们本地的代码有更新,整个过程又得重复来一遍,这将变得非常繁琐。 使用 Fab...
    99+
    2023-01-31
    教程 博客 Django
  • Python采用Django开发自己的博客系统
    好久之前就想做一下自己的博客系统了,但是在网上查了查好像是需要会一些Node.js的相关知识,而且还要安装辣么多的库什么的,就不想碰了。但是我遇到了Django这么一款神器,没想到我的博客系统就这么建立起来...
    99+
    2022-06-04
    自己的 系统 博客
  • Django搭建个人博客:前言
    Django是一个由Python写成的开源Web应用框架,可以用它以更快的速度、更少的代码,搭建一个高性能的网站。 如果你以前从未接触过web开发,并且想快速上线自己的个性化网站,Django绝对是你的最佳选择。 本教程为零基础的小白准备...
    99+
    2023-01-31
    前言 博客 Django
  • Django 博客开发教程 4 - 让
    我们已经编写了博客数据库模型的代码,但那还只是 Python 代码而已,Django 还没有把它翻译成数据库语言,因此实际上这些数据库表还没有真正的在数据库中创建。 迁移数据库 为了让 Django 完成翻译,创建好这些数据库表,我们再一...
    99+
    2023-01-31
    教程 博客 Django
  • 解决java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter三更博客系统
    这个错误通常发生在使用JDK 9或更高版本的Java应用程序中,因为在这些版本中,JDK已经移除了JAXB默认实现的某些部分。 要解决这个问题,您可以尝试以下几个步骤: 升级您的应用程序以使用JAXB的最新实现。可以从Maven仓库或...
    99+
    2023-08-18
    java xml servlet
  • 用Django框架快速搭建博客
    阅读文本大概需要 5 分钟。上次 2 篇文章给大家分享了 Django 搭建的基本知识,今天就把 Django 基本知识串起来,搭建一个简单的博客网站。项目环境语言:Python 3.6编辑器:Pycharm主要步骤创建项目创建 APP创建...
    99+
    2023-06-02
  • Django博客系统注册之创建用户模块应用
    目录1. 创建用户模块应用2. 注册用户模块应用3. 准备模板目录并设置模板路径4. 定义用户注册视图5. 定义用户注册路由6.修改静态文件加载方式1. 创建用户模块应用 创建应用u...
    99+
    2022-11-12
  • 自己的基于Django开发的博客网站
    线上地址: https://www.lylinux.net/ Github地址: https://github.com/liangliang... 基于python3.5和Django1.10的博客。 之前一直是使用wordpr...
    99+
    2023-01-31
    自己的 博客网站 Django
  • 基于django的个人博客网站建立(二)
    前言 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没有保存到session中,今天先完善一下 在用户登录时,先设置了一下session request....
    99+
    2023-01-31
    博客网站 django
  • 基于django的个人博客网站建立(四)
    前言 今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充 主要内容 其实今天的内容和前几天的基本相似,就是个体力活 首先是评论在后台的管理: @auth def view_comment...
    99+
    2023-01-31
    博客网站 django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作