返回顶部
首页 > 资讯 > 后端开发 > Python >python的web框架---Djang
  • 636
分享到

python的web框架---Djang

框架pythonweb 2023-01-31 00:01:55 636人浏览 薄情痞子

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

摘要

界面效果展示: 1、创建超级管理员,实现预定界面功能     2、预定界面:   (一)基于pyMysql设计数据表结构,理清前后端与用户交互逻辑。(用户表,会议室表,预定内容存储表)   1、settings设置默认数据库为mys

界面效果展示:

1、创建超级管理员,实现预定界面功能

 

 

2、预定界面:

 

(一)基于pyMysql设计数据表结构,理清前后端与用户交互逻辑。(用户表,会议室表,预定内容存储表)

  1、settings设置默认数据库mysql

DATABASES = {
    'default': {
    'ENGINE': 'Django.db.backends.mysql',
    'NAME':'dbname',
    'USER': 'root',
    'PASSWord': '',
    'HOST': '',
    'PORT': '',
    }
}

  2、model表设计:

 

 1 from djanGo.db import models
 2 from django.contrib.auth.models import AbstractUser
 3 # Create your models here.
 4 
 5 
 6 class UserInfo(AbstractUser):
 7     tel = models.CharField(max_length=32)
 8 
 9 class Room(models.Model):
10     caption = models.CharField(max_length=32)
11     num = models.IntegerField()     #容纳人数
12     def __str__(self):
13         return self.caption
14 
15 class Book(models.Model):
16     user = models.ForeignKey(to="UserInfo",on_delete=models.CASCADE)
17     room = models.ForeignKey(to="Room",on_delete=models.CASCADE)
18     date = models.DateField()
19     time_choice = (
20         (1, '8:00'),
21         (2, '9:00'),
22         (3, '10:00'),
23         (4, '11:00'),
24         (5, '12:00'),
25         (6, '13:00'),
26         (7, '14:00'),
27         (8, '15:00'),
28         (9, '16:00'),
29         (10, '17:00'),
30         (11, '18:00'),
31         (12, '19:00'),
32         (13, '20:00'),
33     )
34     time_id = models.IntegerField(time_choice)
35 
36     class Meta:
37         unique_together = (
38             ("room","date","time_id"),
39         )
40 
41     def __str__(self):
42         return "{}预定了{}".fORMat(self.user,self.room)

 

 

 

2、梳理urls路由系统、利用内置的auth验证模块编写用户登录。利用js在后端处理用户操作,ajax技术发送request数据。

 1 from django.shortcuts import render,redirect,HttpResponse
 2 from django.contrib import auth
 3 from app01 import models
 4 import datetime
 5 import JSON
 6 # Create your views here.
 7 
 8 def login(request):  #设置登录处理函数
 9     if request.method == "POST":
10 
11         username = request.POST.get("username")
12         pwd = request.POST.get("password")
13         user = auth.authenticate(username=username,password=pwd)
14         if user:
15             auth.login(request,user)
16             return redirect("/index/")
17 
18     return render(request,"login.html",locals())
19 
20 
21 date = datetime.datetime.now().date()
22 
23 
24 def index(request):
25 
26     if not request.user.is_authenticated:
27         return redirect("/login/")
28 
29 
30     book_date = request.GET.get("book_date",date)
31 
32     time_choice=models.Book.time_choice
33     room_obj = models.Room.objects.all()
34     book_obj = models.Book.objects.filter(date=date)
35 
36     htmls = ""
37     for room in room_obj:
38         htmls += "<tr><td>{}</td>".format(room)
39 
40         for time in time_choice:
41 
42             is_choose = False
43 
44             for book in book_obj:
45                 if book.time_id == time[0] and book.room_id == room.pk:   #判断是否有人预订
46                     is_choose = True
47                     break
48 
49             if is_choose:
50                 if request.user.pk == book.user_id:  #在python代码层面处理模板json数据
51 htmls += "<td class='my_active item' time_id={} room_id={}>{}</td>".format(time[0],room.pk,book.user)
52 else:
53                     htmls += "<td class='active item' time_id={} room_id={}>{}</td>".format(time[0],room.pk,book.user)
54             else:
55                 htmls += "<td class='item' time_id={} room_id={}></td>".format(time[0],room.pk)
56 
57         htmls += "</tr>"
58 
59     return render(request,"index.html",locals())
60 
61 def manage(request):
62     if request.method == "POST":
63         data = json.loads(request.POST.get("post_data"))
64         print(data)
65 
66         for room_id,time_id_list in data["del"].items():
67             for time_id in time_id_list:
68                 models.Book.objects.filter(user_id=request.user.pk,room_id=room_id,time_id=time_id,date=date).delete()
69 
70         for room_id,time_id_list in data["add"].items():
71             for time_id in time_id_list:
72                 models.Book.objects.create(user_id=request.user.pk,room_id=room_id,time_id=time_id,date=date)
73 
74 
75         return HttpResponse(json.dumps("ok"))

 

3、编写templates模板,利用bootstrap丰富起始界面,在Python代码层面处理模板json数据。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <link rel="stylesheet" href="/static/bootstrap/CSS/bootstrap.min.css">
 7     <style>
 8         .my_active{background-color: red}
 9         .active{background-color: silver}
10         .temp_active{background-color: #2aabd2}
11     </style>
12 </head>
13 <body>
14 
15 <h1>会议室预订</h1>
16 
17 
18 
19 <table class="table table-bordered">
20     <tr>
21         <th>会议室/时间</th>
22         {% for time in time_choice %}
23             <th>{{ time.1 }}</th>
24         {% endfor %}
25     </tr>
26     {{ htmls|safe }}
27 </table>
28 <button>保存</button>
29 {% csrf_token %}
30 
31 
32 <script src="/static/Jquery.js"></script>
33 <script src="/static/bootstrap/js/bootstrap.js"></script>
34 <script>
35 
36 
37     var post_data = {"add":{},"del":{}};
38 
39     //为td标签绑定点击事件
40     $(".item").click(function(){
41 
42         var time_id = $(this).attr("time_id");
43         var room_id = $(this).attr("room_id");
44 
45         if($(this).hasClass("my_active")){        //如果是登录人预订的时间
46             $(this).removeClass("my_active");
47             $(this).text("");
48 
49             if(post_data["del"][room_id]){
50                 post_data["del"][room_id].push(time_id)
51             }else{
52                 post_data["del"][room_id] = [time_id,];
53             }
54 
55         }else if($(this).hasClass("active")){        //如果是别人预订的时间
56             alert("已经被预订!")
57 
58         }else if($(this).hasClass("temp_active")){
59             $(this).removeClass("temp_active")
60             $(this).text("")
61             post_data["add"][room_id].splice(jQuery.inArray(time_id,post_data["add"][room_id]),1)
62 
63         }else{                                   //如果没人预订
64             $(this).addClass("temp_active");
65             $(this).text("{{ request.user.username }}")
66 
67             if(post_data["add"][room_id]){
68                 post_data["add"][room_id].push(time_id)
69             }else{
70                 post_data["add"][room_id] = [time_id,];
71             }
72         }
73         console.log(post_data)
74     })
75 
76     var csrf = $("[name='csrfmiddlewaretoken']").val()
77 
78     $("button").click(function(){
79         $.ajax({
80             url:"/manage/",
81             type:"post",
82             data:{
83                 post_data:JSON.stringify(post_data),
84                 csrfmiddlewaretoken:csrf,
85             },
86             dataType:"json",
87             success:function(arg){
88                 console.log(arg)
89                 location.href = ""
90 
91             }
92         })
93     })
94 </script>
95 </body>
96 </html>

 

 

  

--结束END--

本文标题: python的web框架---Djang

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

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

猜你喜欢
  • python的web框架---Djang
    界面效果展示: 1、创建超级管理员,实现预定界面功能     2、预定界面:   (一)基于pymysql设计数据表结构,理清前后端与用户交互逻辑。(用户表,会议室表,预定内容存储表)   1、settings设置默认数据库为mys...
    99+
    2023-01-31
    框架 python web
  • Python Web框架Tornado
    Python Web框架Tornado的异步处理代码示例Tornado是一个轻量级但高性能的Python web框架,与另一个流行的Python web框架Django相比,tornado不提供操作数据库的ORM接口及严格的MVC开发模式,...
    99+
    2023-01-31
    框架 Python Web
  • 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 web框架的总结
    1、Django Django可能是最具代表性的Python框架,是遵循MMVC结构模式的开源框架。其名字来自DjangoReinhardt,法国作曲家和吉他演奏家,很多人认为他是历...
    99+
    2024-04-02
  • python web框架的介绍
    随着互联网的兴起,web开发变得愈发的重要。Python作为当前火热的语言, 其中的web开发框架可以说是百花齐放,下面聊一聊这些框架。 一: 基于Python的代表性Web框架 Django Django是一个开放源代码的Web应用...
    99+
    2023-01-30
    框架 python web
  • Python Web框架Django学习
    python web框架Django学习(二)目录: 三、Django创建APP 四、创建登录页面,实现用户交互,后台管理用户(非数据库方式)=================================================...
    99+
    2023-01-31
    框架 Python Web
  • IIS 部署 python web框架
    IIS的安装就不说了吧,然后运行:inetmgr ,打开iis管理器,打开 Web平台安装程序,(如果没有,百度下载安装一下吧),然后是安装--IIS:CGI 这个包。                 接下来,添加网站,添加处理程序模块映射...
    99+
    2023-01-31
    框架 IIS python
  • 浅谈五大Python Web框架
    说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework、framework不可胜数,不完全列表见: http://wiki...
    99+
    2022-06-04
    五大 浅谈 框架
  • python web框架学习笔记
    一、web框架本质 1.基于socket,自己处理请求 #!/usr/bin/env python3 #coding:utf8 import socket def handle_request(cli...
    99+
    2022-06-04
    学习笔记 框架 python
  • python中有哪些web框架
    这期内容当中小编将会给大家带来有关python中有哪些web框架,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.p...
    99+
    2023-06-14
  • 常用的Python web框架有哪些
    常用的Python web框架有:1. Django:一个功能齐全的高级Python Web框架,可以快速开发安全和可扩展的网站和W...
    99+
    2023-10-08
    Python
  • Python最快的Web框架是什么
    今天小编给大家分享一下Python最快的Web框架是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。速度为先当下,pyth...
    99+
    2023-06-27
  • Python的Web框架Django怎么安装
    本篇内容主要讲解“Python的Web框架Django怎么安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的Web框架Django怎么安装”吧!简介Python下有许多款不同的 W...
    99+
    2023-07-02
  • web框架---Bottle
    Bottle Bottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块。 1 pip install bottle 2 easy_install ...
    99+
    2023-01-30
    框架 web Bottle
  • web框架---Flask
    Flask Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人...
    99+
    2023-01-30
    框架 web Flask
  • Python web框架和web服务器之间的关系
    本篇内容介绍了“Python web框架和web服务器之间的关系”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们都知道 Python 作为...
    99+
    2023-06-16
  • Python开发自定义Web框架
    文章目录 开发自定义Web框架1.开发Web服务器主体程序2.开发Web框架主体程序3.使用模板来展示响应内容4.开发框架的路由列表功能5.采用装饰器的方式添加路由6.电影列表页面的开发案例...
    99+
    2023-10-04
    python 服务器 后端
  • python web GUI框架-NiceGUI 教程(一)
    python web GUI框架-NiceGUI 教程(一) streamlit可以在一些简单的场景下仍然推荐使用,但是streamlit实在不灵活,受限于它的核心机制,NiceGUI是一个灵活的we...
    99+
    2023-10-10
    python 前端 开发语言
  • python web框架django项目创建
    要创建一个Django项目,首先需要确保已经安装了Python和Django。接下来,按照以下步骤进行操作:1. 创建一个新的目录,...
    99+
    2023-09-14
    python
  • Python超级明星WEB框架Flask
    Flask简介Flask是一个相对于Django而言轻量级的Web框架。和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模板引擎Jinja: 策略 :werkzeug...
    99+
    2023-01-31
    框架 明星 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作