基於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 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 style="width: 100%;height: 500px" align="center" >
<h1 style="color: purple">EAOPS,歡迎您!</h1>
<hr style="border: 2px;width: 80%"/>
<table>
<tr height="30px">
<td colspan="3" align="center">
<span style="font-size: 18px;">
管理員登陸
</td></tr>
<tr height="30px">
<td colspan="3" align="center">
<span style="font-size: 18px;color:red;" id="tip">
</td></tr>
<tr height="30px">
<td>使用者名稱:</td>
<td>
<input style="width: 150px" name="username" id="username" type="text"/></td>
<td>
</td>
</tr>
<tr height="30px">
<td>密碼:</td>
<td>
<input style="width: 150px" 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 style="width: 100%;height: 500px" align="center" >
<h1 style="color: purple">EAOPS,歡迎您{{user.username}}!</h1>
</div>
</body>
</html>
[root@centos7mysql templates]#
DJANGO框架的資料庫配置實現
mysql資料庫建庫建表
mysql> show create database opsdb;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| opsdb | CREATE DATABASE `opsdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
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>
功能實現測試:
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開發基礎結合實現!
環境資訊:
作業系統: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 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 style="width: 100%;height: 500px" align="center" >
<h1 style="color: purple">EAOPS,歡迎您!</h1>
<hr style="border: 2px;width: 80%"/>
<table>
<tr height="30px">
<td colspan="3" align="center">
<span style="font-size: 18px;">
管理員登陸
</td></tr>
<tr height="30px">
<td colspan="3" align="center">
<span style="font-size: 18px;color:red;" id="tip">
</td></tr>
<tr height="30px">
<td>使用者名稱:</td>
<td>
<input style="width: 150px" name="username" id="username" type="text"/></td>
<td>
</td>
</tr>
<tr height="30px">
<td>密碼:</td>
<td>
<input style="width: 150px" 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 style="width: 100%;height: 500px" align="center" >
<h1 style="color: purple">EAOPS,歡迎您{{user.username}}!</h1>
</div>
</body>
</html>
[root@centos7mysql templates]#
DJANGO框架的資料庫配置實現
mysql資料庫建庫建表
mysql> show create database opsdb;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| opsdb | CREATE DATABASE `opsdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
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>
功能實現測試:
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開發基礎結合實現!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2157132/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基於Python的web架構之Tornado+FlaskPythonWeb架構Flask
- 基於gin的golang web開發:路由GolangWeb路由
- 基於gin的golang web開發:dockerGolangWebDocker
- 基於微服務架構開發線上教育網站微服務架構網站
- 淺談基於 Laravel 開發的 MeEdu 的微服務架構設計Laravel微服務架構
- 基於gin的golang web開發:整合swaggerGolangWebSwagger
- 基於gin的golang web開發:路由二GolangWeb路由
- 《Flask Web開發 基於Python的Web應用開發實戰》簡評FlaskWebPython
- Java開發架構篇:領域驅動設計架構基於SpringCloud搭建微服務Java架構SpringGCCloud微服務
- 基於gin的golang web開發:模型驗證GolangWeb模型
- 基於gin的golang web開發:模型繫結GolangWeb模型
- 基於gin的golang web開發:中介軟體GolangWeb
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構
- 介紹基於事件的架構事件架構
- 基於 dubbo 的分散式架構分散式架構
- 軟考 - 系統架構設計師(基於中介軟體的開發)架構
- Android架構系列-基於MVP建立適合自己的架構Android架構MVP
- 乾淨架構在 Web 服務開發中的實踐架構Web
- 基於gin的golang web開發:認證利器jwtGolangWebJWT
- 基於gin的golang web開發:服務間呼叫GolangWeb
- 《Flask Web開發:基於Python的Web應用開發實戰》學習筆記(二)FlaskWebPython筆記
- 基於Gin的IM聊天架構——HiChat架構
- 智汀雲盤-開發指南web:專案架構Web架構
- 微服務架構Day04-SpringBoot之web開發微服務架構Spring BootWeb
- [譯] Web 應用架構基礎課Web應用架構
- 基於SpringCloud分散式架構SpringGCCloud分散式架構
- 基於Azure IoT開發.NET物聯網應用系列-全新的Azure IoT架構架構
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- 如何構建基於 docker 的開發環境Docker開發環境
- 基於jsp和servlet簡單的java web開發(idea)JSServletJavaWebIdea
- 基於gin的golang web開發:mysql增刪改查GolangWebMySql
- 基於gin的golang web開發:Gin技術拾遺GolangWeb
- 基於spring boot 及mybatis的web開發環境搭建Spring BootMyBatisWeb開發環境
- 微服務架構Day03-SpringBoot之web開發配置微服務架構Spring BootWeb
- 基於函式計算的 BFF 架構函式架構
- 基於零信任架構的IDaaS實現架構
- 基於Vue的組織架構樹元件Vue架構元件
- 基於SPA架構的GraphQL工程實踐架構