Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
pythonspot-zh
提交
621b4e5c
P
pythonspot-zh
项目概览
OpenDocCN
/
pythonspot-zh
8 个月 前同步成功
通知
0
Star
46
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
pythonspot-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
621b4e5c
编写于
11月 20, 2019
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2019-11-20 18:03:25
上级
ae68a0c3
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
100 addition
and
95 deletion
+100
-95
docs/44.md
docs/44.md
+21
-21
docs/45.md
docs/45.md
+10
-7
docs/46.md
docs/46.md
+8
-8
docs/48.md
docs/48.md
+5
-4
docs/49.md
docs/49.md
+5
-5
docs/50.md
docs/50.md
+21
-22
docs/51.md
docs/51.md
+1
-1
docs/52.md
docs/52.md
+6
-6
docs/53.md
docs/53.md
+2
-2
docs/54.md
docs/54.md
+4
-4
docs/55.md
docs/55.md
+1
-1
docs/56.md
docs/56.md
+3
-3
docs/57.md
docs/57.md
+3
-3
docs/58.md
docs/58.md
+4
-4
docs/59.md
docs/59.md
+3
-1
docs/60.md
docs/60.md
+3
-3
未找到文件。
docs/44.md
浏览文件 @
621b4e5c
...
...
@@ -9,7 +9,7 @@
![
Python Database
](
img/4c7e8cbef62872a3c49fc4085527514d.jpg
)
Python数据库。
Python
数据库。
使用 SQL 语言从数据库系统检索数据。 数据无处不在,软件应用程序使用它。 数据位于内存,文件或数据库中。
...
...
@@ -48,17 +48,17 @@ import sys
con
=
None
try
:
con
=
lite
.
connect
(
'test.db'
)
cur
=
con
.
cursor
()
cur
.
execute
(
'SELECT SQLITE_VERSION()'
)
data
=
cur
.
fetchone
()
print
"SQLite version: %s"
%
data
except
lite
.
Error
,
e
:
print
"Error %s:"
%
e
.
args
[
0
]
sys
.
exit
(
1
)
finally
:
if
con
:
con
.
close
()
con
=
lite
.
connect
(
'test.db'
)
cur
=
con
.
cursor
()
cur
.
execute
(
'SELECT SQLITE_VERSION()'
)
data
=
cur
.
fetchone
()
print
"SQLite version: %s"
%
data
except
lite
.
Error
,
e
:
print
"Error %s:"
%
e
.
args
[
0
]
sys
.
exit
(
1
)
finally
:
if
con
:
con
.
close
()
```
...
...
@@ -132,7 +132,7 @@ cur.execute("INSERT INTO Users VALUES(3,'Greg')")
```
第一个值是ID。 第二个值是名称。 一旦运行脚本,数据便被插入到数据库表
`Users`
中:
第一个值是
ID。 第二个值是名称。 一旦运行脚本,数据便被插入到数据库表
`Users`
中:
![
SQL Table
](
img/6331a77064535de9dc0a93e8b103f00d.jpg
)
...
...
@@ -142,7 +142,7 @@ SQL 表
我们可以使用两种方法浏览数据库:命令行和图形界面。
_ 从控制台:_
要使用命令行进行浏览,请键入以下命令:
从控制台:
要使用命令行进行浏览,请键入以下命令:
```
py
sqlite3
user
.
db
...
...
@@ -151,7 +151,7 @@ SELECT * FROM Users;
```
这将在表
Users
中输出数据。
这将在表
`Users`
中输出数据。
```
py
sqlite
&
gt
;
SELECT
*
FROM
Users
;
...
...
@@ -161,7 +161,7 @@ sqlite> SELECT * FROM Users;
```
_ 从 GUI:_
如果要使用 GUI,则有很多选择。 我个人选择了 sqllite-man,但还有
[
很多其他
](
https://stackoverflow.com/questions/835069/which-sqlite-administration-console-do-you-recommend
)
。
我们使用以下方法安装:
从 GUI:如果要使用 GUI,则有很多选择。 我个人选择了 sqllite-man,但还有
[
很多其他
](
https://stackoverflow.com/questions/835069/which-sqlite-administration-console-do-you-recommend
)
。
我们使用以下方法安装:
```
py
sudo
apt
-
get
install
sqliteman
...
...
@@ -174,7 +174,7 @@ sudo apt-get install sqliteman
sqliteman
按
文件
>
打开
>
user.db。 似乎变化不大,不用担心,这只是用户界面。 左侧是一棵小树状视图,请按 Tables
>
用户
。 现在将显示包括所有记录的完整表格。
按
“文件 > 打开 >
`user.db`
”。 似乎变化不大,不用担心,这只是用户界面。 左侧是一棵小树状视图,请按“表 > 用户”
。 现在将显示包括所有记录的完整表格。
![
sqliteman
](
img/60354a5e7e39d04c97a1ee14b3b5db1b.jpg
)
...
...
@@ -219,7 +219,7 @@ with con:
```
这将从数据库输出
“用户”
表中的所有数据:
这将从数据库输出
`Users`
表中的所有数据:
```
py
$
python
get
.
py
...
...
@@ -234,13 +234,13 @@ $ python get.py
我们可以跨多个表构建数据。 这使我们的数据保持结构化,快速和有条理。 如果我们只有一个表来存储所有内容,那么很快就会陷入混乱。 我们将要做的是创建多个表并将它们组合使用。 我们创建两个表:
_ 位用户:_
`Users`
:
![
SQL Table
](
img/f713e77b9a67592c539974f0fd3c7bbe.jpg
)
SQL Table
_ 职位:_
`Jobs`
:
![
SQL Table
](
img/e1cf4ef1a7f5301ee63ded4806461cb2.jpg
)
...
...
@@ -271,7 +271,7 @@ with con:
```
作业表有一个额外的参数
Uid
。 我们使用它来连接 SQL 查询中的两个表:
作业表有一个额外的参数
`Uid`
。 我们使用它来连接 SQL 查询中的两个表:
```
py
SELECT
users
.
name
,
jobs
.
profession
FROM
jobs
INNER
JOIN
users
ON
users
.
ID
=
jobs
.
uid
...
...
docs/45.md
浏览文件 @
621b4e5c
...
...
@@ -2,20 +2,22 @@
> 原文: [https://pythonspot.com/mysql-with-python](https://pythonspot.com/mysql-with-python)
在本教程中,您将学习如何在 Python 中使用广泛使用的
_ 数据库管理系统 _,称为 _MySQL_ 。
您不需要使用 MySQL 的任何先验知识即可使用本教程,但是,除了本简短的入门教程所涵盖的内容外,MySQL 还有很多其他内容。
在本教程中,您将学习如何在 Python 中使用广泛使用的
数据库管理系统,称为 MySQL。
您不需要使用 MySQL 的任何先验知识即可使用本教程,但是,除了本简短的入门教程所涵盖的内容外,MySQL 还有很多其他内容。
## MySQL 教程
数据存储在表的
_ 集合 _
中,每个表由一组行和列组成。 这类似于在
[
SQLite
](
https://pythonspot.com/python-database-programming-sqlite-tutorial/
)
中存储数据的方式。 为了与表中存储的数据进行交互,我们使用一种称为 SQL 的专用编程语言。
数据存储在表的
集合
中,每个表由一组行和列组成。 这类似于在
[
SQLite
](
https://pythonspot.com/python-database-programming-sqlite-tutorial/
)
中存储数据的方式。 为了与表中存储的数据进行交互,我们使用一种称为 SQL 的专用编程语言。
## 步骤 1:安装 MySQL
首先,您必须安装 MySQL 驱动程序,使用下面的特定安装方法。
_ 在 Windows 上:_
使用
[
安装程序安装 MySQLdb。
](
https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.win32-py2.7.msi/download
)
在 Windows 上:
[
使用安装程序安装 MySQLdb
](
https://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.win32-py2.7.msi/download
)
。
在 Linux 上:
_ 在 Linux 上:_
使用以下命令安装 MySQLdb:
```
py
...
...
@@ -26,8 +28,9 @@ yum install mysql-python
取决于您的版本。
_ 在 Mac 上:_
按照 stackoverflow 的安装说明
[](
https://stackoverflow.com/questions/1448429/how-to-install-mysqldb-python-data-access-library-to-mysql-on-mac-os-x#1448476
)
在 Mac 上:
[
按照 stackoverflow 的安装说明
](
https://stackoverflow.com/questions/1448429/how-to-install-mysqldb-python-data-access-library-to-mysql-on-mac-os-x#1448476
)
必须先运行 MySQL 服务器,然后再进行下一步。
...
...
docs/46.md
浏览文件 @
621b4e5c
...
...
@@ -2,7 +2,7 @@
> 原文: [https://pythonspot.com/orm-with-sqlalchemy](https://pythonspot.com/orm-with-sqlalchemy)
对象关系映射器将关系数据库系统映射到对象。
如果您不熟悉面向对象的编程,请先阅读本教程的
[
。 ORM 与使用哪个关系数据库系统无关。 在 Python 中,您可以与对象对话,ORM 会将其映射到数据库。 在本文中,您将学习如何使用 SqlAlchemy ORM。
](
https://pythonspot.com/objects-and-classes
)
对象关系映射器将关系数据库系统映射到对象。
如果您不熟悉面向对象的编程,请先阅读
[
本教程
](
https://pythonspot.com/objects-and-classes
)
。ORM 与使用哪个关系数据库系统无关。在 Python 中,您可以与对象对话,ORM 会将其映射到数据库。在本文中,您将学习如何使用 SqlAlchemy ORM。
下图显示了 ORM 的功能:
...
...
@@ -12,7 +12,7 @@ ORM 对象关系映射。 我们使用 ORM 与数据库进行通信,并且仅
## 创建一个类来填充 ORM
我们创建文件
tabledef.py。 在这个文件中,我们将定义一个 Student 类。 下面的
类的抽象可视化:
我们创建文件
`tabledef.py`
。 在这个文件中,我们将定义一个
`Student`
类。 下面是
类的抽象可视化:
![
class
](
img/56afbfa748895a916cb9a83cb407e791.jpg
)
...
...
@@ -20,7 +20,7 @@ ORM 对象关系映射。 我们使用 ORM 与数据库进行通信,并且仅
请注意,我们没有定义任何方法,仅定义了类的变量。 这是因为我们会将此类映射到数据库,因此不需要任何方法。
这是
tabledef.py
的内容:
这是
`tabledef.py`
的内容:
```
py
from
sqlalchemy
import
*
...
...
@@ -63,7 +63,7 @@ python tabledef.py
```
ORM 创建了数据库文件
tabledef.py
。 它将 SQL 查询输出到屏幕,在本例中显示为:
ORM 创建了数据库文件
`tabledef.py`
。 它将 SQL 查询输出到屏幕,在本例中显示为:
```
py
CREATE
TABLE
student
(
...
...
@@ -81,7 +81,7 @@ CREATE TABLE student (
## 将数据插入数据库
数据库表仍然为空。 我们可以使用 Python 对象将数据插入数据库。 因为我们使用 SqlAlchemy ORM,所以我们不必编写单个 SQL 查询。 现在,我们只需创建要馈送到 ORM 的 Python 对象。 将下面的代码另存为
dummy.py
数据库表仍然为空。 我们可以使用 Python 对象将数据插入数据库。 因为我们使用 SqlAlchemy ORM,所以我们不必编写单个 SQL 查询。 现在,我们只需创建要馈送到 ORM 的 Python 对象。 将下面的代码另存为
`dummy.py`
```
py
import
datetime
...
...
@@ -125,7 +125,7 @@ ORM 会将 Python 对象映射到关系数据库。 这意味着您无需与应
## 查询数据
我们可以使用以下代码查询表的所有项目。 请注意,Python 将每条记录视为
Student 类定义的唯一对象。 将代码另存为 demo.py
我们可以使用以下代码查询表的所有项目。 请注意,Python 将每条记录视为
`Student`
类定义的唯一对象。 将代码另存为
`demo.py`
```
py
import
datetime
...
...
@@ -154,7 +154,7 @@ Eric York
```
要选择单个对象,请使用
filter()
方法。 下面的演示:
要选择单个对象,请使用
`filter()`
方法。 下面的演示:
```
py
import
datetime
...
...
@@ -181,7 +181,7 @@ Eric York
```
最后,如果您不希望 ORM 输出,则任何 SQL 查询的输出都将
create_engine
语句更改为:
最后,如果您不希望 ORM 输出,则任何 SQL 查询的输出都将
`create_engine`
语句更改为:
```
py
engine
=
create_engine
(
'sqlite:///student.db'
,
echo
=
False
)
...
...
docs/48.md
浏览文件 @
621b4e5c
...
...
@@ -7,7 +7,8 @@
![
pythonQuote
](
img/70a9514350dec1b5880953cebd0fae0a.jpg
)
Web 应用程序通常是使用框架创建的。 框架使开发可扩展,可靠和可维护的 Web 应用程序变得更加容易。 这样可以避免一遍又一遍地重新创建相同的代码。
的共同特征是:
共同特征是:
*
URL 路由
*
输出模板
...
...
@@ -49,9 +50,9 @@ Django 和 Flask 是最受欢迎的Web框架。 但是,您可能需要评估
[
Django
](
https://www.djangoproject.com/
)
是最常用的 Python 网络框架。 它会处理很多事情,因此您可以专注于 Web 应用程序开发。 使用 Django 构建的网站处理的流量峰值很高,例如每秒 5 万次点击。
数据库访问是通过对象关系映射器实现的:您使用 Python 定义数据模型,而 Django 处理实际的数据库管理系统(SQL)。 但是,如果需要,您可以使用 Django 编写自己的 SQL 查询。 Django 支持 URL 路由。 它鼓励使用精美的 URL 设计,例如不带
.php 或.asp
的结尾。
数据库访问是通过对象关系映射器实现的:您使用 Python 定义数据模型,而 Django 处理实际的数据库管理系统(SQL)。 但是,如果需要,您可以使用 Django 编写自己的 SQL 查询。 Django 支持 URL 路由。 它鼓励使用精美的 URL 设计,例如不带
`.php`
或
`.asp`
的结尾。
**
功能
**
:
**
特性
**
:
*
对象关系映射器
*
网址路由和视图
...
...
@@ -95,7 +96,7 @@ if __name__ == '__main__':
*
会话管理
*
记录中
*
日志
如果您想进一步了解 Flask,
[
阅读这里
](
https://pythonspot.com/python-flask-tutorials/
)
。您知道 Flask 最初是愚人节的笑话吗?
...
...
docs/49.md
浏览文件 @
621b4e5c
...
...
@@ -4,13 +4,13 @@
在本教程中,您将学习如何使用 Python 构建网络应用。
我们将使用称为
[
Flask
](
https://pythonspot.com/python-flask-tutorials/
)
的微型框架。
它的核心很小,但是可以通过许多插件扩展,例如 SQLAlchemy,Babel,CouchDB,MongoDB 等。
我们将使用称为
[
Flask
](
https://pythonspot.com/python-flask-tutorials/
)
的微型框架。它的核心很小,但是可以通过许多插件扩展,例如 SQLAlchemy,Babel,CouchDB,MongoDB 等。
一些 Flask 示例应用为:
*
[
flaskr
](
http://flask.pocoo.org/docs/0.10/tutorial/introduction/
)
-微博
*
[
flaskr
](
http://flask.pocoo.org/docs/0.10/tutorial/introduction/
)
-
微博
*
[
minitwit
](
https://github.com/mitsuhiko/flask/tree/master/examples/minitwit/
)
-- 一个推特克隆
*
[
flask 网站
](
https://github.com/mitsuhiko/flask-website
)
-
静态页面+邮件列表文件
*
[
flask 网站
](
https://github.com/mitsuhiko/flask-website
)
-
静态页面+邮件列表文件
## 安装 Flask
...
...
@@ -47,6 +47,6 @@ $ python hello.py
```
在您的网络浏览器中打开
[
http
:// localhost:5000 /
](
http://localhost:5000/
)
,然后会出现“ Hello World!”
。
在您的网络浏览器中打开
[
http
://localhost:5000/
](
http://localhost:5000/
)
,然后会出现
`"Hello World!"`
。
[
下载 Flask 示例
](
https://pythonspot.com/download-flask-examples/
)
\ No newline at end of file
[
下载 Flask 示例
](
https://pythonspot.com/download-flask-examples/
)
\ No newline at end of file
docs/50.md
浏览文件 @
621b4e5c
...
...
@@ -6,8 +6,7 @@ Jinja2 是 Python 的模板引擎。 将数据呈现到网页时,可以使用
## 关于 Jinja
Jinja2 模板只是一个文本文件,不需要特定的扩展名,例如.html,.xml。
模板可能包含标签和特殊定界符:
Jinja2 模板只是一个文本文件,不需要特定的扩展名,例如
`.html`
,
`.xml`
。模板可能包含标签和特殊定界符:
| 定界符 | 用法 |
| --- | --- |
...
...
@@ -20,43 +19,43 @@ Jinja2 模板只是一个文本文件,不需要特定的扩展名,例如.htm
## 基本模板和子模板
Jinja2 模板可以扩展基本模板。 在包含许多站点的网页上,您可能希望这些页面看起来相似。 在
/ templates /中,使用以下代码创建一个名为 base.html
的文件:
Jinja2 模板可以扩展基本模板。 在包含许多站点的网页上,您可能希望这些页面看起来相似。 在
`/templates/`
中,使用以下代码创建一个名为
`base.html`
的文件:
```
py
<
block
head
%>
{
%
block
head
%
}
<
link
rel
=
"stylesheet"
href
=
"style.css"
>
<
title
><
block
title
%><
endblock
%>
-
My
Webpage
</
title
>
<
endblock
%>
<
div
id
=
"content"
><
block
content
%><
endblock
%>
</
div
>
{
%
title
><
block
title
%
}{
%
endblock
%
}
-
My
Webpage
</
title
>
{
%
endblock
%
}
{
%
div
id
=
"content"
><
block
content
%
}{
%
endblock
%
}
</
div
>
<
div
id
=
"footer"
>
<
block
footer
%>
{
%
block
footer
%
}
Copyright
2015
by
<
a
href
=
"https://pythonspot.com/"
>
pythonspot
</
a
>
.
<
endblock
%>
</
div
>
{
%
endblock
%
}
</
div
>
```
_ 我们没有设置 style.css,但是您可以设置一个。_
将/templates/user.html
更改为:
我们没有设置
`style.css`
,但是您可以设置一个。将
`/templates/user.html`
更改为:
```
py
<
extends
"base.html"
%>
<
block
title
%>
Index
<
endblock
%>
<
block
head
%>
<
#123; super() >>
{
%
extends
"base.html"
%
}
{
%
block
title
%
}
Index
{
%
endblock
%
}
{
%
block
head
%
}
{{
super
()
}}
<
style
type
=
"text/css"
>
.
important
<
olor
:
#336699; ><br />
.
important
{
color
:
#336699; }
</
style
>
<
endblock
%>
<
block
content
%>
{
%
endblock
%
}
{
%
block
content
%
}
<
h1
>
Users
</
h1
>
<
p
class
=
"important"
></
p
>
<
ul
>
<
for
user
in
users
%>
<
li
>
<
#123; user >>
</li>
<
endfor
%>
</
ul
>
<
endblock
%>
{
%
for
user
in
users
%
}
<
li
>
{{
user
}}
</
li
>
{
%
endfor
%
}
</
ul
>
{
%
endblock
%
}
```
...
...
@@ -72,6 +71,6 @@ python app.py
![
template jinja
](
img/b183ab9d09b4460a2626a0004e1f1b00.jpg
)
Flask Jinja
template engine
Flask Jinja
模板引擎
[
下载 Flask 示例
](
https://pythonspot.com/download-flask-examples/
)
\ No newline at end of file
docs/51.md
浏览文件 @
621b4e5c
...
...
@@ -40,7 +40,7 @@ URL 路由使 Web 应用程序中的 URL 易于记住。 现在,我们将创
```
复制下面的代码,并将其另存为
app.py
复制下面的代码,并将其另存为
`app.py`
```
py
from
flask
import
Flask
...
...
docs/52.md
浏览文件 @
621b4e5c
...
...
@@ -50,7 +50,7 @@ app.run(debug=True,host='0.0.0.0', port=4000)
第一个显示基于登录条件的登录屏幕或主屏幕。第二个路由在登录时验证登录变量。
我们创建目录
/ templates /。 使用以下代码创建文件/templates/login.html
:
我们创建目录
`/templates/`
。 使用以下代码创建文件
`/templates/login.html`
:
```
py
{
%
block
body
%
};
...
...
@@ -77,7 +77,7 @@ $ python hello.py
```
在您的网络浏览器中打开
[
http
:// localhost:4000 /
](
http://localhost:5000/
)
,然后会出现登录屏幕。 登录凭据显示在 _do_admin_login()_
函数中。
在您的网络浏览器中打开
[
http
://localhost:5000/
](
http://localhost:5000/
)
,然后会出现登录屏幕。 登录凭据显示在
`do_admin_login()`
函数中。
![
Pythonspot.com Login Screen Python
](
img/00af7aae4e992d7feccf73ba2c75cb8f.jpg
)
...
...
@@ -304,7 +304,7 @@ python tabledef.py
```
该文件将创建数据库结构。
在目录内,您将找到一个名为 _tutorial.db 的文件。_ 创建一个名为
**dummy.py**
的文件,其中将包含以下代码:
该文件将创建数据库结构。
在目录内,您将找到一个名为
`tutorial.db`
的文件。创建一个名为
`dummy.py`
的文件,其中将包含以下代码:
```
py
import
datetime
...
...
@@ -341,7 +341,7 @@ $ python dummy.py
```
这会将伪数据放入数据库中。 最后,我们更新
**app.py**
这会将伪数据放入数据库中。 最后,我们更新
`app.py`
## 使用 SqlAlchemy 验证登录凭据
...
...
@@ -365,7 +365,7 @@ return "Object not found " + POST_USERNAME + " " + POST_PASSWORD
```
我们使用 SqlAlchemys Oject 关系映射(ORM)。 我们将对象映射到关系数据库表,反之亦然。 定义(用户)在
tabledef.py 中给出。 s.query 函数是构建查询的地方。 我们有两个条件:用户名和密码必须匹配。 如果对象存在,query.first()返回 true,否则返回 false
。 这给出了以下总代码:
我们使用 SqlAlchemys Oject 关系映射(ORM)。 我们将对象映射到关系数据库表,反之亦然。 定义(用户)在
`tabledef.py`
中给出。
`s.query`
函数是构建查询的地方。 我们有两个条件:用户名和密码必须匹配。 如果对象存在,
`query.first()`
返回
`true`
,否则返回
`false`
。 这给出了以下总代码:
```
py
from
flask
import
Flask
...
...
@@ -419,7 +419,7 @@ app.run(debug=True,host='0.0.0.0', port=4000)
[
下载 Flask 示例
](
https://pythonspot.com/en/download-flask-examples/
)
_ 最佳做法:_
最佳做法:
*
[
散列数据库密码
](
https://en.wikipedia.org/wiki/Hash_function
)
。 不要将它们存储为纯文本格式。
...
...
docs/53.md
浏览文件 @
621b4e5c
...
...
@@ -12,7 +12,7 @@
## 使用 Google 的登录验证
我们使用名为
**flask_oauth**
的模块向 Google 进行身份验证。 它由 Flask 的创建者 Armin Ronacher 维护,因此可以确保该模块不会消失。 该模块使用 OAuth,该协议提供令牌以访问资源。 其他模块可能没有很好的支持。
我们使用名为
`flask_oauth`
的模块向 Google 进行身份验证。 它由 Flask 的创建者 Armin Ronacher 维护,因此可以确保该模块不会消失。 该模块使用 OAuth,该协议提供令牌以访问资源。 其他模块可能没有很好的支持。
复制下面的代码,并设置您从上面的 Google 获得的
**客户端 ID**
和
**客户端密钥**
。 只需替换以下行:
...
...
@@ -22,7 +22,7 @@ GOOGLE_CLIENT_SECRET = 'PUT CLIENT SECRET'
```
将程序另存为
app.py
将程序另存为
`app.py`
```
py
from
flask
import
Flask
,
redirect
,
url_for
,
session
...
...
docs/54.md
浏览文件 @
621b4e5c
...
...
@@ -12,7 +12,7 @@
## 代码
创建文件
_app.py_ ,并设置您从 Twitter 获得的 _Consumer_key_ 和 _Consumer_secret_
。
创建文件
`app.py`
,并设置您从 Twitter 获得的
`consumer_key`
和
`consumer_secret`
。
```
py
from
flask
import
Flask
,
request
,
redirect
,
url_for
,
session
,
g
,
flash
,
\
...
...
@@ -101,7 +101,7 @@ app.run()
```
使用文件
index.html 创建目录/ templates /
使用文件
`index.html`
创建目录
`/templates/`
```
py
{
%
block
body
%
};
...
...
@@ -119,7 +119,7 @@ Sign in with twitter.
```
最后,使用图像
sign-in.png 创建目录/ static /
:
最后,使用图像
`sign-in.png`
创建目录
`/static/`
:
![
sign-in
](
img/fd7b94854e84159bef1cf070eb492474.jpg
)
...
...
@@ -142,6 +142,6 @@ Flask OAuth Twitter
![
twitter_oauth
](
img/bdac172cb293a59affa870d6d1998358.jpg
)
twitter_oa
uth
Twitter OA
uth
[
下载 Flask 示例
](
https://pythonspot.com/download-flask-examples/
)
\ No newline at end of file
docs/55.md
浏览文件 @
621b4e5c
...
...
@@ -35,7 +35,7 @@ print rates
使用
[
Google Charts API
](
https://developers.google.com/chart/interactive/docs/gallery
)
,您可以在网站上显示实时数据。有很多很棒的图表可以轻松添加到 Flask 应用中。我们只需将通过 JSON 从服务器获取并解析的数据提供给 Google Charts API。
为目录创建带有目录
/ templates /
的 flask 应用程序。 这是 Flask 的主要代码:
为目录创建带有目录
`/templates/`
的 flask 应用程序。 这是 Flask 的主要代码:
```
py
from
flask
import
Flask
,
flash
,
redirect
,
render_template
,
request
,
session
,
abort
...
...
docs/56.md
浏览文件 @
621b4e5c
...
...
@@ -18,7 +18,7 @@ Flask web 表单
Flask wtforms
您可以从
[
http://getbootstrap.com/getting-started/#download
](
https://getbootstrap.com/getting-started/#download
)
获取引导文件,并将其解压缩到新目录
/ static /中。 代码几乎相同,但是模板已更改。
码:
您可以从
[
http://getbootstrap.com/getting-started/#download
](
https://getbootstrap.com/getting-started/#download
)
获取引导文件,并将其解压缩到新目录
`/static/`
中。 代码几乎相同,但是模板已更改。 代
码:
```
py
from
flask
import
Flask
,
render_template
,
flash
,
request
...
...
@@ -55,7 +55,7 @@ if __name__ == "__main__":
```
我们在模板
hello.html 中添加了引导程序
:
我们在模板
`hello.html`
中添加了 Bootstrap
:
```
py
...
...
@@ -158,7 +158,7 @@ if __name__ == "__main__":
```
使用以下代码更新模板
hello.html
:
使用以下代码更新模板
`hello.html`
:
```
py
...
...
docs/57.md
浏览文件 @
621b4e5c
...
...
@@ -43,7 +43,7 @@ def render_static(page_name):
`/<string:page_name>/`
创建目录
/ templates /并添加文件 hello.html
:
创建目录
`/templates/`
并添加文件
`hello.html`
:
```
py
...
...
@@ -61,8 +61,8 @@ $ python app.py
```
然后,可以使用 URL 路由访问任何
.html
文件。
然后,可以使用 URL 路由访问任何
`.html`
文件。
例如,可以使用
[
http://127.0.0.1:5000/hello
](
http://127.0.0.1:5000/hello
)
访问静态文件
hello.html。 您可以将任何 css 文件存储在/ static /
目录中。
例如,可以使用
[
http://127.0.0.1:5000/hello
](
http://127.0.0.1:5000/hello
)
访问静态文件
`hello.html`
。 您可以将任何 css 文件存储在
`/static/`
目录中。
[
下载 Flask 示例
](
https://pythonspot.com/download-flask-examples/
)
\ No newline at end of file
docs/58.md
浏览文件 @
621b4e5c
...
...
@@ -2,9 +2,9 @@
> 原文: [https://pythonspot.com/flask-boilerplate-with-bootstrap-sqlalchemy/](https://pythonspot.com/flask-boilerplate-with-bootstrap-sqlalchemy/)
在本文中,您将学习
cookiecutter,这是一个从项目模板创建项目的命令行实用程序。 使用 cookiecutter
,您可以创建一个新的 python Flask 项目。 这类似于标准的 Flask 项目,除了使用此方法时,您将从几个完整的模板和功能列表开始。
在本文中,您将学习
`cookiecutter`
,这是一个从项目模板创建项目的命令行实用程序。 使用
`cookiecutter`
,您可以创建一个新的 python Flask 项目。 这类似于标准的 Flask 项目,除了使用此方法时,您将从几个完整的模板和功能列表开始。
功能
特性
*
具有入门模板的 Bootstrap 3 和 Font Awesome 4
*
具有基本用户模型的 Flask-SQLAlchemy
...
...
@@ -33,7 +33,7 @@ sudo pip install flask_debugtoolbar
```
安装并克隆
cookieclutter
安装并克隆
`cookieclutter`
```
py
sudo
pip
install
cookiecutter
...
...
@@ -71,4 +71,4 @@ python manage.py runserver
![
cookiecutter
](
img/bbadfcdfb92f4eda0d40720b8d0e771e.jpg
)
cookiecutter 输出主题
\ No newline at end of file
`cookiecutter`
输出主题
\ No newline at end of file
docs/59.md
浏览文件 @
621b4e5c
...
...
@@ -145,7 +145,9 @@ Flask 条形图
输出:
[
<picture><source srcset="/wp-content/uploads/2015/07/linechart.png.webp" type="image/webp"> <source srcset="/wp-content/uploads/2015/07/linechart.png" type="image/jpeg"> ![Flask line-chart
](
img/d307bb30c80bcdc37eb773b73a87a095.jpg
)
<
/picture
>
](/wp-content/uploads/2015/07/linechart.png) 烧瓶线形图
![
Flask line-chart
](
img/d307bb30c80bcdc37eb773b73a87a095.jpg
)
Flask 折线图
### 创建饼图
...
...
docs/60.md
浏览文件 @
621b4e5c
...
...
@@ -22,7 +22,7 @@
```
json
模块使您可以在 JSON 和 Python 对象之间进行转换。
`json`
模块使您可以在 JSON 和 Python 对象之间进行转换。
## JSON 转换示例
...
...
@@ -93,7 +93,7 @@ except (ValueError, KeyError, TypeError):
## 将 Python 对象(字典)转换为 JSON
如果要将 Python 对象转换为 JSON,请使用
json.dumps()
方法。
如果要将 Python 对象转换为 JSON,请使用
`json.dumps()`
方法。
```
py
import
json
...
...
@@ -110,7 +110,7 @@ print json.dumps(d, ensure_ascii=False)
## 将 JSON 数据转换为 Python 对象
可以使用
**json.loads()**
函数将 JSON 数据转换(反序列化)为 Pyhon 对象。 映射表:
可以使用
`json.loads()`
函数将 JSON 数据转换(反序列化)为 Pyhon 对象。 映射表:
| JSON 格式 | 蟒蛇 |
| --- | --- |
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录