AngularJS Tutorial(9)from w3school



The code from the previous chapter can also be used to read from databases.


Fetching Data From a PHP Server Running MySQL

AngularJS Example

< div ng-app= "myApp" ng-controller= "customersCtrl" >

< table >
  < tr ng-repeat= "x in names" >
    < td > {{ x.Name }} < /td >
    < td > {{ x.Country }} < /td >
  < /tr >
< /table >

< /div >

< script >
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
    $http.get("http://www.w3schools.com/angular/customers_mysql.php")
    .success(function (response) {$scope.names = response.records;});
});
< /script >

Try it Yourself »

Fetching Data From an ASP.NET Server Running SQL

AngularJS Example

< div ng-app= "myApp" ng-controller= "customersCtrl" >

< table >
  < tr ng-repeat= "x in names" >
    < td > {{ x.Name }} < /td >
    < td > {{ x.Country }} < /td >
  < /tr >
< /table >

< /div >

< script >
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
    $http.get("http://www.w3schools.com/angular/customers_sql.aspx")
    .success(function (response) {$scope.names = response.records;});
});
< /script >

Try it Yourself »

Server Code Examples

The following section is a listing of the server code used to fetch SQL data.

  1. Using PHP and MySQL. Returning JSON.
  2. Using PHP and MS Access. Returning JSON.
  3. Using ASP.NET, VB, and MS Access. Returning JSON.
  4. Using ASP.NET, Razor, and SQL Lite. Returning JSON.

Cross-Site HTTP Requests

Requests for data from a different server (than the requesting page), are called cross-site HTTP requests.

Cross-site requests are common on the web. Many pages load CSS, images, and scripts from different servers.

In modern browsers, cross-site HTTP requests from scripts are restricted to same site for security reasons.

The following line, in our PHP examples, has been added to allow cross-site access.

header("Access-Control-Allow-Origin: *");

1. Server Code PHP and MySQL

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");

$result = $conn->query("SELECT CompanyName, City, Country FROM Customers");

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
    $outp .= '"City":"'   . $rs["City"]        . '",';
    $outp .= '"Country":"'. $rs["Country"]     . '"}';
}
$outp ='{"records":['.$outp.']}';
$conn->close();

echo($outp);
?>

2. Server Code PHP and MS Access

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=ISO-8859-1");

$conn = new COM("ADODB.Connection");
$conn->open("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb");

$rs = $conn->execute("SELECT CompanyName, City, Country FROM Customers");

$outp = "";
while (!$rs->EOF) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
    $outp .= '"City":"'   . $rs["City"]        . '",';
    $outp .= '"Country":"'. $rs["Country"]     . '"}';
    $rs->MoveNext();
}
$outp ='{"records":['.$outp.']}';

$conn->close();

echo ($outp);
?>

3. Server Code ASP.NET, VB and MS Access

<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>
<%
Response.AppendHeader("Access-Control-Allow-Origin", "*")
Response.AppendHeader("Content-type", "application/json")
Dim conn As OleDbConnection
Dim objAdapter As OleDbDataAdapter
Dim objTable As DataTable
Dim objRow As DataRow
Dim objDataSet As New DataSet()
Dim outp
Dim c
conn = New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=Northwind.mdb")
objAdapter = New OledbDataAdapter("SELECT CompanyName, City, Country FROM Customers", conn)
objAdapter.Fill(objDataSet, "myTable")
objTable=objDataSet.Tables("myTable")

outp = ""
c = chr(34)
for each x in objTable.Rows
if outp <> "" then outp = outp & ","
outp = outp & "{" & c & "Name"    & c & ":" & c & x("CompanyName") & c & ","
outp = outp &       c & "City"    & c & ":" & c & x("City")        & c & ","
outp = outp &       c & "Country" & c & ":" & c & x("Country")     & c & "}"
next

outp ="{" & c & "records" & c & ":[" & outp & "]}"
response.write(outp)
conn.close
%>

4. Server Code ASP.NET, VB Razor and SQL Lite

@{
Response.AppendHeader("Access-Control-Allow-Origin", "*")
Response.AppendHeader("Content-type", "application/json")
var db = Database.Open("Northwind");
var query = db.Query("SELECT CompanyName, City, Country FROM Customers");
var outp =""
var c = chr(34)
}
@foreach(var row in query)
{
if outp <> "" then outp = outp + ","
outp = outp + "{" + c + "Name"    + c + ":" + c + @row.CompanyName + c + ","
outp = outp +       c + "City"    + c + ":" + c + @row.City        + c + ","
outp = outp +       c + "Country" + c + ":" + c + @row.Country     + c + "}"
}
outp ="{" + c + "records" + c + ":[" + outp + "]}"
@outp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想要爬取w3school的web教程,可以先访问https://www.w3school.com.cn/web/,然后按照以下步骤进行操作: 1. 使用requests库发送GET请求,获取网页内容。 ```python import requests url = "https://www.w3school.com.cn/web/" response = requests.get(url) ``` 2. 使用beautifulsoup库解析HTML内容,获取所有的教程链接。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, "html.parser") links = soup.find_all("a", class_="item") ``` 3. 遍历所有链接,使用requests库发送GET请求,获取每个教程的内容。 ```python for link in links: tutorial_url = link.get("href") tutorial_response = requests.get(tutorial_url) tutorial_soup = BeautifulSoup(tutorial_response.text, "html.parser") # 处理每个教程的内容 ``` 4. 在每个教程的页面中,可以使用beautifulsoup库提取出所需的内容,例如章节标题、内容等。 ```python # 提取章节标题 title = tutorial_soup.h1.string # 提取内容 content_div = tutorial_soup.find("div", class_="content") content = content_div.get_text().strip() ``` 5. 最后,您可以将获取到的内容保存到本地文件或数据库中。 ```python # 将内容保存到文件中 with open("tutorial.txt", "w", encoding="utf-8") as f: f.write(title + "\n") f.write(content) ``` 需要注意的是,爬取网站内容时需要遵守爬虫道德规范,不要对网站造成不必要的负担和影响。同时,如果网站有反爬虫机制,您可能需要使用一些反反爬虫技巧,例如设置请求头、使用代理IP等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值