我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行基于Python+Django+Jquery架构的Web开发

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行基于Python+Django+Jquery架构的Web开发

这期内容当中小编将会给大家带来有关如何进行基于Python+Django+Jquery架构的Web开发,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    近来,公司要开发一个自动化运维平台,使用到基于Python+Django+Jquery架构的Web开发,这里介绍一下该架构的组建。
环境信息:
操作系统:Linux rhel 7.1
数据库:mysql 5.6
需要安装的架构软件:
[root@centos7mysql django]# ll
total 34336
-rw-r--r-- 1 root root  7989435 Jun 27 18:06 Django-2.0.6.tar.gz
-rw-r--r-- 1 root root  1081874 Apr 21  2016 pip-1.5.4.tar.gz
-rw-r--r-- 1 root root    74297 Jun 27 22:56 PyMySQL-0.8.1.tar.gz
-rw-r--r-- 1 root root 22994617 Jun 27 18:10 Python-3.6.5.tgz
-rw-r--r-- 1 root root   308066 Jun 27 18:04 pytz-2018.4.tar.gz
-rw-r--r-- 1 root root  2699252 Jun 27 17:22 sqlite-autoconf-3240000.tar.gz
[root@centos7mysql django]# 
架构软件的安装
    步骤1:安装SQLITE 3
解压后进入sqlite的解压目录下,进行编译:
$configure –prefix=<你的安装路径> ###这里我设置的是 /usr/local/sqlite
$make –j24
$make install
    步骤2:安装sqlite-devel
检查是否安装该包
rpm -qa  | grep -i sqlite
如果没有,使用yum源安装
yum install sqlite-devel
该步骤非常重要,否则会导致Python无法加载到Sqlite3。
报下面类似的错误
1)ImportError: dynamic module does not define module export function (PyInit__sqlite3)
2)No module named _sqlite3
    步骤3:安装Python 3
解压Python-3.6.5.tgz之后,进入Python-3.6.5
./configure --prefix=/usr/local/python3
make && make install
Python 3.6.5 会自动安装setuptools, pip,版本分别为 pip-9.0.3 setuptools-39.0.1
 设置环境变量
echo 'export PATH=$PATH:/usr/local/python3/bin' >> ~/.bashrc
vi修改yum的配置
#!/usr/bin/python改为#!/usr/bin/python2.7 
    步骤4:安装pytz
解压pytz之后,进入pytz-2018
python3 setup.py  install
    步骤5:安装Django
解压django之后,进入Django-2.0.6
python3 setup.py install
    步骤6: 安装成功验证
新建项目
django-admin startproject testDJ
当前目录下生成Project 目录testDJ
启动服务器
python3  manage.py runserver
创建应用APP
python manage.py startapp EAOPS

DJANGO应用架构文件结构
[root@centos7mysql ~]# tree ./testDJ/
./testDJ/    #工程的根目录
├── db.sqlite3   #Django的项目测试数据库sqllite
├── EAOPS    #Django的应用目录
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       └── __init__.cpython-36.pyc
│   ├── models.py    #应用EAOPS的数据库模板配置文件,相当于SSH的实体类文件
│   ├── models.py.bak    #模板文件的备份文件
│   ├── __pycache__
│   │   ├── admin.cpython-36.pyc
│   │   ├── __init__.cpython-36.pyc
│   │   ├── models.cpython-36.pyc
│   │   └── views.cpython-36.pyc
│   ├── tests.py
│   └── views.py    #应用EAOPS的视图配置文件,相当于SSH的controller文件
├── manage.py    #django的管理文件
├── static    #django的应用APP的js、css、图片等静态文件的存放路径
│   ├── js
│   │   ├── jquery-1.4.3.min.js
│   │   └── jquery-1.8.0.js
│   └── logo    #应用EAOPS的Logo文件存放路径
│       └── favicon.ico
├── templates    #应用EAOPS的模板配置文件,相当于SSH的jsp或者html文件
│   ├── index.html
│   └── login.html
└── testDJ    #项目的配置文件存放路径
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-36.pyc
    │   ├── settings.cpython-36.pyc
    │   ├── urls.cpython-36.pyc
    │   └── wsgi.cpython-36.pyc
    ├── settings.py    #项目的核心配置文件包括项目应用的映射路径、数据库配置、静态文件映射路径
    ├── urls.py    #项目的web请求配置文件,相当于SSH的struts.xml配置文件
    └── wsgi.py
10 directories, 28 files
[root@centos7mysql ~]# 
应用settings.py中关于模板文件映射路径配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['/root/testDJ/templates',],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
应用settings.py中关于数据库的配置
DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlite3',
        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'opsdb',
'USER':'root',
'PASSWORD':'rootroot',
'HOST':'127.0.0.1',
'POST':'3306',
    }
}
应用settings.py中关于js、css、图片的映射路径
STATIC_URL = '/static/'
STATICFILES_DIRS =  (
    os.path.join(BASE_DIR, 'static'),
)
应用urls.py文件的配置
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from EAOPS import views
from EAOPS.models import *
from django.views.generic.base import RedirectView
urlpatterns = [
    #path('admin/', admin.site.urls),
    url(r'^favicon.ico$',RedirectView.as_view(url=r'static/logo/favicon.ico')),  #应用EAOPS的logo配置路径
    url(r'^login/$',views.Login),    #应用http请求login动作的配置
    url(r'^UserLogin/$',views.UserLogin),    #应用jquery请求动作的配置
    url(r'^Index/$',views.Index),    #应用EAOPS的Index动作请求,是jquery的UserLogin的重定向
]
应用EAOPS的模型配置文件
[root@centos7mysql EAOPS]# cat models.py
# -*- coding:utf-8 -*-
from __future__ import unicode_literals 
from django.db import models
# Create your models here.
class USER(models.Model):
userid = models.AutoField(primary_key=True)
username = models.CharField(max_length=30)
pwd = models.CharField(max_length=30)
status = models.SmallIntegerField()
[root@centos7mysql EAOPS]# 
应用EAOPS的视图,相当于SSH的controller文件的实现
[root@centos7mysql EAOPS]# cat views.py 
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.views.decorators.csrf import csrf_exempt
import time, datetime
import json
from django.db import connection,transaction
from django.template import RequestContext 
from EAOPS import models
from EAOPS.models import *
from django.db.models import Q
from django.core import serializers
# Create your views here.
def Login(request):   #urls.py请求Login动作的实现
    return render(request,'login.html')
def Index(request):    #urls.py请求Index动作的实现
    return render(request,'index.html')
@csrf_exempt
def UserLogin(request):   #urls.py请求UserLogin动作的实现
username = request.POST.get('username')  #接收AJAX的username参数
password = request.POST.get('pwd')  #接收AJAX的password参数
djuser=USER.objects.filter(Q(username=username)&Q(pwd=password))  #django的用户登录ya
data = {}
response = HttpResponse()
response['Context-Type'] = "text/javascript"
if len(djuser.values()):
  data = juser.values()[0]
  rdata = json.dumps(data)
else:
  data = {"msg":"failed"}
  rdata = json.dumps(data)
response.write(rdata)
return response
[root@centos7mysql EAOPS]# 
应用EAOPS的login.html文件
[root@centos7mysql templates]# cat login.html 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EAOPS-运维自动化平台</title>

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
    <script class="lazy" data-src="/static/js/jquery-1.8.0.js" type="text/javascript"></script>
    <script>
function login(){   #用户登录页面登陆按钮动作jquery方法实现
  var username=$('#username').val();
  var pwd=$('#password').val();
  alert(username+'  '+pwd); 
  var args = {"username":username,"pwd":pwd};
  var url = "/UserLogin/";
  $.ajax({  #ajax请求动作
   url:url,
   data:args,
   type:"POST",
   dataType:'json',
   success:function(res){
var obj = eval(res);
if(!obj.hasOwnProperty("msg")){
$('#tip').html("login successfully!");
window.location.replace("/Index");
}else{
$('#tip').html("account or password is wrong! try agin please!");
}
   }
  });
}
    </script>
  </head>
  <body>
  <div  align="center" >  
    <h2 >EAOPS,欢迎您!</h2>
    <hr />
<table>
    <tr height="30px">
    <td colspan="3" align="center">
    <span >
    管理员登陆
   
    </td></tr>
<tr height="30px">
    <td colspan="3" align="center">
    <span  id="tip">
   
    </td></tr>
    <tr height="30px">
    <td>用户名:</td>
    <td>
    <input  name="username" id="username" type="text"/></td>
    <td>
    </td>
    </tr>
    <tr height="30px">
    <td>密码:</td>
    <td>
    <input  name="password" id="password" type="password"/>
    </td>
    <td>
    </td>
    </tr>
    <tr height="30px">
    <td colspan="3" align="center">
    <input type="button" value="登陆" onclick="login();"/>
    <input type="reset" value="重置"/>
    </td>
    </tr>
    </table>
  </div>
  </body>
</html>
[root@centos7mysql templates]#
应用EAOPS的Index.html文件
[root@centos7mysql templates]# cat index.html 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EAOPS-首页</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
  <body>
  <div  align="center" >  
    <h2 >EAOPS,欢迎您{{user.username}}!</h2>
  </div>
  </body>
</html>
[root@centos7mysql templates]# 
 DJANGO框架的数据库配置实现
mysql数据库建库建表
mysql> show create database opsdb;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| opsdb    | CREATE DATABASE `opsdb` |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> 
mysql> show create table USER\G
*************************** 1. row ***************************
       Table: USER
Create Table: CREATE TABLE `USER` (
  `userid` int(6) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `pwd` varchar(30) NOT NULL,
  `status` int(1) DEFAULT '1',
  PRIMARY KEY (`userid`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `pwd` (`pwd`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8
1 row in set (0.41 sec)
mysql> 

功能实现测试:
如何进行基于Python+Django+Jquery架构的Web开发
如何进行基于Python+Django+Jquery架构的Web开发

django后台运行日志(有自己添加的打印输出日志):
[30/Jun/2018 13:08:20] "GET /login/ HTTP/1.1" 200 2272
[30/Jun/2018 13:08:21] "GET /static/js/jquery-1.8.0.js HTTP/1.1" 304 0
============AJAX -->UserLogin print POST===============
<QueryDict: {'username': ['admin'], 'pwd': ['admin']}>
============AJAX -->UserLogin print recived param username===============
admin
=============UserLogin print query results========================
<QuerySet [{'userid': 100, 'username': 'admin', 'pwd': 'admin', 'status': 1}]>
1
{'userid': 100, 'username': 'admin', 'pwd': 'admin', 'status': 1}
===========users is not None=============
===========UserLogin print return AJAX request============
{"userid": 100, "username": "admin", "pwd": "admin", "status": 1}
[30/Jun/2018 13:08:49] "POST /UserLogin/ HTTP/1.1" 200 65
[30/Jun/2018 13:08:50] "GET /Index/ HTTP/1.1" 200 561

至此基于Python+Django+Jquery架构的Web开发基础结合实现!

上述就是小编为大家分享的如何进行基于Python+Django+Jquery架构的Web开发了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行基于Python+Django+Jquery架构的Web开发

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

下载Word文档

猜你喜欢

如何进行基于Python+Django+Jquery架构的Web开发

这期内容当中小编将会给大家带来有关如何进行基于Python+Django+Jquery架构的Web开发,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 近来,公司要开发一个自动化运维平台,使用到基于P
2023-06-02

如何进行ASP.NET Web开发框架中的查询

本篇文章为大家展示了如何进行ASP.NET Web开发框架中的查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Enterprise Solution 支持用户自定义查询(query and loo
2023-06-17

如何进行Java和Python的Web开发分析

今天就跟大家聊聊有关如何进行Java和Python的Web开发分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Java里面有一种服务端的软件组件技术,叫做Servlet,其实它的
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录