python3.9连接MySQL数据库
时间: 2023-07-20 18:45:15 浏览: 54
要在 Python 3.9 中连接到 MySQL 数据库,你需要安装 MySQL Connector Python 库。可以通过以下命令来安装它:
```
pip install mysql-connector-python
```
安装完成后,你可以使用以下代码连接到 MySQL:
```python
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="database_name"
)
# 执行 SQL 查询等操作
mydb.close()
```
在上面的代码中,你需要将 `localhost` 替换为你的 MySQL 服务器的主机名或 IP 地址,将 `username` 和 `password` 替换为你的 MySQL 登录凭据,将 `database_name` 替换为你要连接的数据库名称。
连接成功后,你就可以执行 SQL 查询等操作了。最后,别忘了关闭连接,以释放资源。
相关问题
nginx+uwsgi+docker+django4.0+python3.9+mysql8.0部署,请提供详细的配置和步骤案例
以下是基于 Ubuntu 20.04 操作系统的 nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署步骤:
1. 首先安装必要的软件和依赖:
```
sudo apt-get update
sudo apt-get install -y git python3-pip python3-dev python3-venv build-essential libssl-dev libffi-dev nginx docker.io docker-compose mysql-server
```
2. 创建并激活 Python 虚拟环境:
```
python3 -m venv myprojectenv
source myprojectenv/bin/activate
```
3. 安装 Django 和 uWSGI:
```
pip install django==4.0 uwsgi
```
4. 创建 Django 项目:
```
django-admin startproject myproject
cd myproject
```
5. 配置 Django 数据库设置:
打开 `myproject/settings.py` 文件,在 `DATABASES` 中添加以下内容:
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myprojectdb',
'USER': 'myprojectuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}
```
6. 创建 MySQL 数据库和用户:
登录 MySQL:
```
sudo mysql
```
创建数据库:
```
CREATE DATABASE myprojectdb CHARACTER SET UTF8;
```
创建用户:
```
CREATE USER 'myprojectuser'@'localhost' IDENTIFIED BY 'mypassword';
```
授权用户访问数据库:
```
GRANT ALL PRIVILEGES ON myprojectdb.* TO 'myprojectuser'@'localhost';
```
刷新权限:
```
FLUSH PRIVILEGES;
```
退出 MySQL:
```
exit
```
7. 测试 Django 项目是否能够正常运行:
```
python manage.py runserver
```
在浏览器中访问 `http://localhost:8000`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功搭建。
8. 配置 uWSGI:
创建 `myproject/uwsgi.ini` 文件,添加以下内容:
```
[uwsgi]
socket = :8001
chdir = /path/to/myproject
module = myproject.wsgi:application
master = true
pidfile = /tmp/myproject-master.pid
processes = 4
threads = 2
vacuum = true
max-requests = 1000
harakiri = 60
```
9. 启动 uWSGI:
```
uwsgi --ini myproject/uwsgi.ini
```
10. 配置 nginx:
创建 `/etc/nginx/sites-available/myproject` 文件,添加以下内容:
```
server {
listen 80;
server_name myproject.com;
access_log /var/log/nginx/myproject.access.log;
error_log /var/log/nginx/myproject.error.log;
client_max_body_size 20M;
location /static/ {
alias /path/to/myproject/static/;
}
location /media/ {
alias /path/to/myproject/media/;
}
location / {
uwsgi_pass 127.0.0.1:8001;
include /etc/nginx/uwsgi_params;
}
}
```
11. 创建软链接:
```
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
```
12. 测试 nginx 配置是否正确:
```
sudo nginx -t
```
如果没有错误,重启 nginx:
```
sudo systemctl restart nginx
```
13. 创建 Dockerfile:
在 Django 项目根目录下创建 `Dockerfile` 文件,添加以下内容:
```
FROM python:3.9
RUN apt-get update \
&& apt-get install -y nginx \
&& rm -rf /var/lib/apt/lists/*
RUN pip install uwsgi
COPY ./requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
COPY . /app
WORKDIR /app
RUN python manage.py collectstatic --noinput
COPY ./myproject-nginx.conf /etc/nginx/sites-available/myproject
RUN ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
RUN rm /etc/nginx/sites-enabled/default
EXPOSE 80
CMD service nginx start && uwsgi --ini /app/uwsgi.ini
```
14. 创建 docker-compose.yml 文件:
在 Django 项目根目录下创建 `docker-compose.yml` 文件,添加以下内容:
```
version: '3'
services:
web:
build: .
ports:
- "80:80"
depends_on:
- db
volumes:
- ./static:/app/static
- ./media:/app/media
environment:
- DB_HOST=db
- DB_NAME=myprojectdb
- DB_USER=myprojectuser
- DB_PASSWORD=mypassword
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- MYSQL_DATABASE=myprojectdb
- MYSQL_USER=myprojectuser
- MYSQL_PASSWORD=mypassword
volumes:
db_data:
```
15. 构建和运行 Docker 容器:
```
sudo docker-compose up --build
```
16. 测试 Django 项目是否能够正常运行:
在浏览器中访问 `http://localhost`,如果能够正常显示 Django 的欢迎页面,说明 Django 项目已经成功部署到 Docker 容器中。
至此,nginx+uwsgi+docker+django4.0+python3.9+mysql8.0 部署完成。
Python3.9通过xpath获取中关村网站平板电脑各项数据参数并保存到数据库中
好的,这是一道比较复杂的问题,需要分步骤来回答。首先,我们需要准备以下工具:
1. Python 3.9
2. 数据库(如MySQL)
3. 网页爬虫工具(如requests、BeautifulSoup、lxml)
接下来,我们需要编写以下步骤的代码:
1. 发送请求获取网页数据
使用requests库发送HTTP请求,获取中关村网站平板电脑数据页面的HTML源码。
```python
import requests
url = 'http://detail.zol.com.cn/tablepc/'
response = requests.get(url)
html = response.text
```
2. 解析HTML源码
使用BeautifulSoup库解析HTML源码,获取需要的数据。
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'lxml')
```
3. 使用xpath定位数据
使用xpath定位需要的数据,并将其存储到一个数据列表中。
```python
data_list = []
# 型号
models = soup.xpath('//h3[@class="product-model"]/a/text()')
data_list.append(models)
# 价格
prices = soup.xpath('//b[@class="price-type"]/text()')
data_list.append(prices)
# CPU
cpus = soup.xpath('//ul[@class="product-detail"]/li[1]/span[2]/text()')
data_list.append(cpus)
# 内存
memories = soup.xpath('//ul[@class="product-detail"]/li[2]/span[2]/text()')
data_list.append(memories)
# 存储
storages = soup.xpath('//ul[@class="product-detail"]/li[3]/span[2]/text()')
data_list.append(storages)
# 屏幕尺寸
screens = soup.xpath('//ul[@class="product-detail"]/li[4]/span[2]/text()')
data_list.append(screens)
# 操作系统
oss = soup.xpath('//ul[@class="product-detail"]/li[5]/span[2]/text()')
data_list.append(oss)
# 重量
weights = soup.xpath('//ul[@class="product-detail"]/li[6]/span[2]/text()')
data_list.append(weights)
```
4. 存储数据到数据库中
使用MySQL数据库,将数据存储到表中。
```python
import pymysql
db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8')
cursor = db.cursor()
for i in range(len(models)):
sql = """
insert into tablet (model, price, cpu, memory, storage, screen, os, weight)
values (%s, %s, %s, %s, %s, %s, %s, %s)
"""
cursor.execute(sql, (models[i], prices[i], cpus[i], memories[i], storages[i], screens[i], oss[i], weights[i]))
db.commit()
db.close()
```
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
import pymysql
url = 'http://detail.zol.com.cn/tablepc/'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'lxml')
data_list = []
# 型号
models = soup.xpath('//h3[@class="product-model"]/a/text()')
data_list.append(models)
# 价格
prices = soup.xpath('//b[@class="price-type"]/text()')
data_list.append(prices)
# CPU
cpus = soup.xpath('//ul[@class="product-detail"]/li[1]/span[2]/text()')
data_list.append(cpus)
# 内存
memories = soup.xpath('//ul[@class="product-detail"]/li[2]/span[2]/text()')
data_list.append(memories)
# 存储
storages = soup.xpath('//ul[@class="product-detail"]/li[3]/span[2]/text()')
data_list.append(storages)
# 屏幕尺寸
screens = soup.xpath('//ul[@class="product-detail"]/li[4]/span[2]/text()')
data_list.append(screens)
# 操作系统
oss = soup.xpath('//ul[@class="product-detail"]/li[5]/span[2]/text()')
data_list.append(oss)
# 重量
weights = soup.xpath('//ul[@class="product-detail"]/li[6]/span[2]/text()')
data_list.append(weights)
db = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8')
cursor = db.cursor()
for i in range(len(models)):
sql = """
insert into tablet (model, price, cpu, memory, storage, screen, os, weight)
values (%s, %s, %s, %s, %s, %s, %s, %s)
"""
cursor.execute(sql, (models[i], prices[i], cpus[i], memories[i], storages[i], screens[i], oss[i], weights[i]))
db.commit()
db.close()
```
以上就是通过Python3.9使用xpath获取中关村网站平板电脑各项数据参数并保存到数据库中的步骤。