系统:Ubuntu 18.04.4 LTS
conda:4.10.3
python:3.8.12
pip:21.2.4
$ conda install numpy
$ conda install pandas
$ conda install requests
$ conda install matplotlib
$ python urllibDemo.py
$ python urllibWithParam.py
$ python getStockAsCsv.py
$ python regexMatchDemo.py
$ python regexSplitDemo.py
$ python getFromSinaAPI.py
$ pip install pandas_datareader
Successfully installed pandas-datareader-0.10.0
$ python getDataByPandasDatareader.py
...
OSError: [Errno 101] Network is unreachable
...
$ python printDataByPandasDatareader.py
ModuleNotFoundError: No module named 'pandas_datareader'
$ python getStockInfoByTS.py
本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
...
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
$
$
$ python printStockCodeByTS.py
本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
...
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
$ python saveStockToCsvByTS.py
本接口即将停止更新,请尽快使用Pro版接口:https://tushare.pro/document/2
只是其中一种方式而已,不准备解决了。
ts失败的原因是已经升级为ts pro,需要积分,具体可参考官网。
注册+100积分,完善资料+20积分。可调用基本的接口。
查看api可以看到,调用方式已经改变了。
pro = ts.pro_api()
#查询当前所有正常上市交易的股票列表
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
或者
data = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
安装mysql,略。
创建数据库
一定要指定utf8编码,否则中文会乱码
mysql> CREATE DATABASE pythonStock;
mysql> use pythonStock;
mysql> CREATE TABLE stockInfo (date VARCHAR(20),open FLOAT,close FLOAT,high FLOAT,low FLOAT, vol INT, stockCode VARCHAR(20)) DEFAULT CHARSET=utf8;;
mysql> DESCRIBE stockInfo; +-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| date | varchar(20) | YES | | NULL | |
| open | float | YES | | NULL | |
| close | float | YES | | NULL | |
| high | float | YES | | NULL | |
| low | float | YES | | NULL | |
| vol | int(11) | YES | | NULL | |
| stockCode | varchar(20) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
7 rows in set (0.01 sec)
插入数据
mysql> INSERT INTO stockInfo
-> VALUES ('20190102',15.06,15.93,16.33,14.71,75979904,'600895');
TestMySQLDB.py需要修改成如下方式才可以
#第8行
db = pymysql.connect(host="localhost",user="root",passwd="111111",db="pythonStock" )
#第13行,我的表名叫stockInfo,I大写
cursor.execute("select * from stockInfo")
从文件中加载报错
1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
默认为NULL,表示限制不能导入导出,有值的话,需要将文件放置到值目录下,
mysql> show global variables like '%secure_file_priv%';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.00 sec)
Django框架的底层实现也是基于WSGI的,由于对WSGI进行了封装,感知不到WSGI规范的存在。
$ conda install django
$ python djangoDemo.py
3.2.5
$ django-admin startproject MyDjangoApp
$ ls MyDjangoApp/
manage.py MyDjangoApp
$ ls MyDjangoApp/MyDjangoApp/
asgi.py __init__.py settings.py urls.py wsgi.py
python manage.py migrate需要加上
$ cd MyDjangoApp
$ python manage.py migrate
$ python manage.py runserver localhost:8080
如果其他主机想要访问,要修改启动方式,并且,修改settings.py
$ python manage.py runserver 0:8000
或者
$ python manage.py runserver 0.0.0.0:8000
settings.py,找到ALLOWED_HOSTS,里面可以指定哪些IP可以访问,[‘xxx.xxx.xxx.xxx’ ,…, ‘xxx.xxx.xxx.xxx’],或者允许所有主机访问。
ALLOWED_HOSTS = ['*']