iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python Web框架Django学习
  • 149
分享到

Python Web框架Django学习

框架PythonWeb 2023-01-31 05:01:24 149人浏览 泡泡鱼

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

摘要

python web框架Django学习(二)目录: 三、Django创建APP 四、创建登录页面,实现用户交互,后台管理用户(非数据库方式)=================================================

python web框架Django学习(二)

目录:

 三、Django创建APP

 四、创建登录页面,实现用户交互,后台管理用户(非数据库方式)


=================================================================================================

三、Django创建App

=================================================================================================

1、首先使用django-admin创建好一个django项目

Django-admin startproject test01


2、在test01目录下面执行命令

D:\python2.7.13\exercise\test01>Python manage.py startapp cmdb     #app名称为cmdb

D:\python2.7.13\exercise\test01>python manage.py startapp openstack


3、查看目录(使用pycharm打开查看),确认是否创建成功!

wKioL1nXbZ_ybJioAAAf0RbNCUg114.png-wh_50


4、实现浏览器中访问项目cmdb

1) 新创建的cmdb App中的目录有:

wKiom1nXcaDxdipsAAAQpZ46hZc176.png-wh_50

2) 修改cmdb中的views.py文件,具体配置如下:

from djanGo.shortcuts import render
from django.shortcuts import HttpResponse  #加入

# Create your views here.
def home(request):                         #定义函数home
    return HttpResponse('<h1>这是我的第一个Django--App程序!!!<h1>')                        HttpResponse()

3) 修改项目中的urls.py文件

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse  #导入httpserver模块
import time                                #加入
from cmdb import views                    #导入cmdb app中的views
def home(request):                         #定义函数home
    return HttpResponse('<h1>这是我的第一个Django程序!!!<h1>')

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index.html',home),           #添加index.html
    url(r'^cmdb',views.home),            #将cmdb app添加到url中


4) 开启django服务器:

5) 浏览器访问测试:

wKiom1nXcyiDY1CqAAA0HNd2_BY150.png-wh_50




==================================================================================================

四、创建登录页面,实现用户交互,后台管理用户(非数据库方式)

=================================================================================================

1、在项目test01目录下面创建一个templates目录,并且在templates目录中创建一个html文件index.html。

2、在html文件中写入内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>

   <style>
       label{
           width: 120px;
           text-align: right;
           display: inline-block;
       }
   </style>

</head>
<body>
   <fORM action="/login" method="post">
       <p>
           <label for="username">请输入用户名</label>
           <input id="username" type="text" />
       </p>
       <p>
           <label for="passWord">请输入密码</label>
           <input id="password" type="text" />
           <input type="submit"  values="提交"/>
       </p>

   </form>
</body>
</html>

3、在APP文件cmdb目录下的views.py文件中写入以下内容:

from django.shortcuts import HttpResponse  #加入

# Create your views here.
def login(request):             #定义函数home
   f = open('templates/index.html','r',encoding='utf8')
   data = f.read()
   f.close()
   return HttpResponse(data)

  【注意】:可以将views.py中的以上内容修改为:

from django.shortcuts import render

def login(request):

   return render(request,'index.html')

  并且修改项目文件test01中的setting.py中的TEMPLATES中的DIRS,修改为

'DIRS': [os.path.join(BASE_DIR,'templates')],

表示默认模板位置在templates目录下面。

wKiom1nXlMmy79lpAABirOttspw960.png-wh_50

4、在项目文件夹test01下面的urls.py文件中加入

urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'^index.html',home),           #添加index.html
   url(r'^login',views.login),            #将cmdb app添加到url中
]

5、开启django服务器,浏览器访问效果为:

wKioL1nXliCDjfrbAAAZE1fM9z4926.png-wh_50

  到此,浏览器能够正常访问前端页面,但是不能实现用户交互!!!


  下面将实现用户输入正确的用户名和密码时跳转到百度首页;输入错误的用户名或者密码时,提示“用户名或密码错误”

6、在app文件cmdb中的views.py中加入:

from django.shortcuts import render
from django.shortcuts import redirect

def login(request):

   if request.method == "POST":
       user = request.POST.get('user',None) #得到用户输入的用户名
       pwd = request.POST.get('pwd', None)  #得到用户输入的密码
       print(user,pwd)               #在后台打印用户输入的用户名和密码
       if user == 'root' and pwd == '123456': #判断
           return redirect('http://www.b
aidu.com') #跳转到百度
   return render(request, 'index.html')

当用户输入用户名为root,密码为123456时,跳转到百度首页!!!

7、继续设计当用户输入错误信息是,返回“用户名或密码错误”

1) 在index.html文件中加入一行:<span style="color: red;">` error_message `</span>

  加入后,index.html文件为:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       label{
           width: 120px;
           text-align: right;
           display: inline-block;
       }
   </style>
</head>
<body>
   <form action="/login" method="post">
       <p>
           <label for="username">请输入用户名:</label>
           <input id="username" type="text" name="user"/>
       </p>
       <p>
           <label for="pwd">请输入密码:</label>
           <input id="pwd" type="password" name="pwd"/>
           <input type="submit"  values="提交" />
           <span style="color: red;">` error_message `</span>
       </p>

   </form>
</body>
</html>

2)在app文件views.py文件中修改为:

from django.shortcuts import render
from django.shortcuts import redirect

def login(request):
   error_message=""
   if request.method == "POST":
       user = request.POST.get('user',None)
       pwd = request.POST.get('pwd', None)
       print(user,pwd)
       if user == 'root' and pwd == '123456':
           return redirect('http://www.baidu.com')
       else:
           error_message = "用户名或密码错误"

   return render(request, 'index.html',{'error_message':error_message})

3) 当输入错误信息时,浏览器访问效果为:

wKioL1nYZyaAyREeAAAmCS0OO18583.png-wh_50

  到此,能够实现用户名为root密码为123456的用户登录,并且跳转到百度首页。而且实现了当用户输入错误的用户名或密码时,提示“用户名或者密码错误”!

  

  下面将实现后台管理用户。

8、首先在templates目录中创建一个名为home.html的HTML文件,文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
   <table>
       <tr>
           <td>张三</td>
           <td>1992</td>
           <td>女</td>
       </tr>
       <tr>
           <td>李四</td>
           <td>1993</td>
           <td>男</td>
       </tr>
       <tr>
           <td>王五</td>
           <td>1997</td>
           <td>男</td>
       </tr>
   </table>
</body>
<html>

9、在APP文件cmdb中的views.py中定义home函数,并把redirect中的地址改为/home

from django.shortcuts import render
from django.shortcuts import redirect

def login(request):
   error_message=""
   if request.method == "POST":
       user = request.POST.get('user',None)
       pwd = request.POST.get('pwd', None)
       print(user,pwd)
       if user == 'root' and pwd == '123456':
           return redirect('/home')
       else:
           error_message = "用户名或密码错误"

   return render(request, 'index.html',{'error_message':error_message})

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

10、在项目文件test01的urls.py中加入映射关系from django.conf.urls import url

from django.contrib import admin
from django.shortcuts import HttpResponse  #导入HttpServer模块
import time                                #加入
from cmdb import views                    #导入cmdb app中的views
def home(request):                         #定义函数home
   return HttpResponse('<h1>这是我的第一个Django程序!!!<h1>')

urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'^index.html',home),           #添加index.html
   url(r'^login',views.login),   #将cmdb app添加到url中
   url(r'^home',views.home)
]

11、浏览器测试

1) 浏览器中输入用户登录地址:127.0.0.1:8000/login

wKioL1nYfIOzmu-QAAAgrHY4ll0193.png-wh_50

2) 输入正确的用户名和密码,正常跳转到127.0.0.1:8000/home页面

wKioL1nYfJDC-nGJAAAb2v-UFFQ411.png-wh_50

  到此,当用户输入正确的用户名和密码时,能够实现跳转,并且能够能够看到之前在home.html文件中输入的三位用户的信息,但是这些用户的信息无法灵活改变,已经在html文件中写死了。


  下面将进行将后台列表中的用户,用循环的方式,打印在前端页面上。

12、首先需要在home.html文件中添加一个循环,添加后home.html文件如下:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
   <table>
       {% for row in user_list %}
       <tr>
           <td>` row`.`username `</td>
           <td>` row`.`gender `</td>
           <td>` row`.`email `</td>
       </tr>
       {% endfor    %}
       <tr>
           <td>李四</td>
           <td>1993</td>
           <td>男</td>
       </tr>
       <tr>
           <td>王五</td>
           <td>1997</td>
           <td>男</td>
       </tr>
   </table>
</body>
<html>

【注意】:

1) Django中在html文件中加入文件的方法:

       {% for row in user_list %}   #循环的开始,需要一对大括号,并且里面有两个%
       <tr>
           <td>` row`.`username `</td>
           <td>` row`.`gender `</td>
           <td>` row`.`email `</td>
       </tr>
       {% endfor    %}         #循环的结尾也得有一对大括号和两个%

2) row表示一个字典

3) 引入单变量值时需要两个大括号

       {% for row in user_list %}
       <tr>
           <td>` row`.`username `</td>
           <td>` row`.`gender `</td>
           <td>` row`.`email `</td>
       </tr>
       {% endfor    %}

  这里的username、gender和email与APP文件中views.py中的username、gender、email相对应。

13、修改APP文件中的views.py文件,加入USER_LIST列表和一个循环,修改后的views.py文件如下:

from django.shortcuts import render
from django.shortcuts import redirect

def login(request):
   error_message=""
   if request.method == "POST":
       user = request.POST.get('user',None)
       pwd = request.POST.get('pwd', None)
       print(user,pwd)
       if user == 'root' and pwd == '123456':
           return redirect('/home')
       else:
           error_message = "用户名或密码错误"

   return render(request, 'index.html',{'error_message':error_message})

USER_LIST=[
   {'username':'qiuuuu','email':'abcdefg','gender':'male'}
]

for index in range(20):
   temp = {'username':'qiuuuu'+str(index),'email':'abcdef','gender':'male'}
   USER_LIST.append(temp)
#str(index)表示将index的值变为字符型,range(20)表示数字1到20之间的整数从小到大排列。
def home(request):
   return render(request,'home.html',{'user_list':USER_LIST})

14、在项目文件test01中的urls.py中加入对应关系,加入后的urls.py文件如下:

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse  #导入HttpServer模块
import time                                #加入
from cmdb import views                    #导入cmdb app中的views
def home(request):                         #定义函数home
   return HttpResponse('<h1>这是我的第一个Django程序!!!<h1>')

urlpatterns = [
   url(r'^admin/', admin.site.urls),
   url(r'^index.html',home),           #添加index.html
   url(r'^login',views.login),   #将cmdb app添加到url中
   url(r'^home',views.home),
]

15、浏览器输入127.0.0.1:8000/login,然后输入正确的用户名和密码后跳转到home.html页面的效果为:

wKioL1nYhvmCWdk-AACKmk9VSAo417.png-wh_50












--结束END--

本文标题: Python Web框架Django学习

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

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

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

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

下载Word文档
猜你喜欢
  • Python Web框架Django学习
    python web框架Django学习(二)目录: 三、Django创建APP 四、创建登录页面,实现用户交互,后台管理用户(非数据库方式)=================================================...
    99+
    2023-01-31
    框架 Python Web
  • Python Behave框架学习
    behave是python语言的行为驱动开发,全称:Behavior-driven development,简称BDD。 BDD框架 BDD即行为驱动开发(Behavior Driv...
    99+
    2024-04-02
  • web开发框架Flask学习一
    flask框架 用Python做Web开发的三大框架特点 Django 主要特点是大而全,集成了很多的组件,例如:Admin Form Model等,不管你用不用的到,他都会为 ...
    99+
    2023-01-30
    框架 web Flask
  • Python的哪个Web框架学习周期短,学习成本低?
    知乎上有人问,Python的哪个Web框架学习周期短,学习成本低?很多人推荐Flask,老牌轻量级web框架,确实是初学者的首选。这几天我在Github上看到FastApi,觉得比Flask更轻量。FastApi是这两年异军突起的网红web...
    99+
    2023-05-14
    Python web 框架
  • web开发框架Flask学习二
    jinja2模板规范 在当前项目中创建一个文件为templates的文件夹,将其设置为模板文件夹,新建的html为模板页面, 在视图函数中使用render_template(".html的文件", my_...
    99+
    2023-01-30
    框架 web Flask
  • Django框架HttpResponse和HttpRequest对象学习
    目录HttpRequest对象1.我们可以打印这个request对象2.我们可以打印观察一下它具备哪些方法常用属性和方法功能讲解: HttpResponse对象HttpRespons...
    99+
    2024-04-02
  • python web框架django项目创建
    要创建一个Django项目,首先需要确保已经安装了Python和Django。接下来,按照以下步骤进行操作:1. 创建一个新的目录,...
    99+
    2023-09-14
    python
  • Python的Web框架Django怎么安装
    本篇内容主要讲解“Python的Web框架Django怎么安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的Web框架Django怎么安装”吧!简介Python下有许多款不同的 W...
    99+
    2023-07-02
  • Python爬虫框架Scrapy 学习
    开发环境PyCharm目标网站和上一次一样,可参考:http://dingbo.blog.51cto.com/8808323/1597695 但是这次不是在单个文件中运行,而是创建一个scrapy项目1.使用命令行工具创建scrapy项目的...
    99+
    2023-01-31
    爬虫 框架 Python
  • Python Web开发用Flask还Django框架好
    本篇内容主要讲解“Python Web开发用Flask还Django框架好”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python Web开发用Flask还Django框架好”吧!是否有考虑过...
    99+
    2023-06-02
  • WEB框架之---Django初级篇
    一、下载与安装(Windows版)    下载地址:https://www.djangoproject.com/download/     或者通过命令:pip install django==1.11.2进行安装(Python3使用pip...
    99+
    2023-01-31
    框架 WEB Django
  • Python常用Web框架Django、Flask与Tornado介绍
    web框架是什么 web开发框架是一组工具,同时也提供了非常多的资源,供软件开发人员构建和管理网站、提供web服务、编写web应用程序。它是一个抽象工具,能使开发应用程序和重复使用代...
    99+
    2024-04-02
  • Python Web框架:Django、Flask和FastAPI巅峰对决
    今天,我们将深入探讨Python Web框架的三巨头:Django、Flask和FastAPI。无论你是Python小白还是老司机,本文都会为你解惑,带你领略这三者的魅力。废话不多说,让我们开始这场...
    99+
    2023-09-01
    django flask fastapi
  • web自动化框架:selenium学习使用操作大全(Python版)
    目录 一、浏览器驱动下载二、selenium-python安装(打开网站、操作元素)三、网页解析(HTML、xpath)四、selenium基本操作1、元素定位八种方法2、元素动态定位3、if...
    99+
    2023-10-28
    软件测试 单元测试 压力测试 selenium 自动化测试
  • web开发框架之Django基础
      在脚本中如何进行Django的运行 if __name__ == '__main__': import os import django # 注意路径(当前所在的位置,要加载Django的配置文件) ...
    99+
    2023-01-30
    框架 基础 web
  • Python的Web框架Django介绍与安装方法
    简介 Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django 是一个开放源代码的 Web 应...
    99+
    2024-04-02
  • Python Web 框架 Sanic
    1.操作系统CentOS 7.2 X642.安装系统包gcc-c++zlib-developenssl-devel3.update python 3.51).安装PythonPython-3.5.2.tgz./configurem...
    99+
    2023-01-31
    框架 Python Web
  • [Python学习] Django 权限
    本文为大家讲解 Django 框架里自带的权限模型,从理论到实战演练,带领大家了解 Django 里权限是怎么一回事。主要内容什么是权限管理?Web 权限Django 权限机制Django 的权限项权限应用Permission(一)Perm...
    99+
    2023-01-31
    权限 Python Django
  • Python django学习之:mod
    1. 建立app在自己的工程项目目录下输入:python manage.py startapp myapp(你想建立的app名称)建立一个叫myapp的app这样,在你的工程项目目录下会出现一个叫myapp的目录2. 创建Model在app...
    99+
    2023-01-31
    Python django mod
  • Python Web框架Tornado
    Python Web框架Tornado的异步处理代码示例Tornado是一个轻量级但高性能的Python web框架,与另一个流行的Python web框架Django相比,tornado不提供操作数据库的ORM接口及严格的MVC开发模式,...
    99+
    2023-01-31
    框架 Python Web
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作