python + django + echart 构建中型项目
1. python生产环境, 多层modules 导入问题:
多个modules 如何导入不同级别的包:
在每个modules下新建 __init__.py
import os, sys
dir_mytest = os.path.dirname(os.path.abspath(__file__)) # crontab 跑时 os.getcwd() 只会取到用户的路径....
sys.path.insert(0, dir_mytest+"tmp\\t1")
#sys.path.insert(0,os.getcwd())
在控制目录的执行文件中:
from module import py
如果是三层结构或者更多:
from module.submodule.submodule.py import *
2. django 结构:
->1. 在admin层 urls.py 设置路由:
# 导入app模块的控制层
from app_name import views
urlpatterns = [
#path('admin/', admin.site.urls),
path('index/', views.index)
]
->2. 在app业务处理层 views.py 编写处理逻辑:
#导入HttpResponse模块
from django.shortcuts import HttpResponse
def index(request):
return HttpResponse("hello world")
在此可以进行python的业务编码处理。
->3. 在app业务处理层, settings.py 设置数据库连接:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app_name'
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #此项不变
'NAME': 'mydata', #设置的数据库名称
'USER': 'root', #mysql 的登录用户名
'PASSWORD': '123456', #mysql的登录密码
'HOST': 'localhost', #默认为127.0.0.1
'PORT': '3306', #默认端口:3306
'charset': 'utf8',
}
}
import pymysql
pymysql.install_as_MySQLdb()
conda install mysqlclient=1.3.13
mysqlclient 1.3.3 or newer is required; you have 0.7.11.None
通过查找路径C:\Programs\Python\Python36-32\Lib\site-packages\Django-2.0-py3.6.egg\django\db\backends\mysql\base.py
这个路径里的文件把
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
query = query.decode(errors='replace')
将这段代码注释掉
########### pyecharts ##############################################################
安装pyecharts: pip install pyecharts
script_list 是 Page() 类渲染网页所需要依赖的 echarts js 库,依赖的库的数量取决于所要渲染的图形种类。
echarts js 库的地址,默认的地址为 http://chfw.github.io/jupyter-echarts/echarts
在app_name下, 创建templates目录;
-> 在该目录下:
:创建一个static:存放echarts.js
: 创建一个pyecharts.html:
<head>
<meta charset="utf-8">
<title>Proudly presented by PycCharts</title>
{% for jsfile_name in script_list %}
{% load staticfiles %}
<!-- <script src="{% static '/echarts/{{jsfile_name}}.js' %}"></script> -->
<script src="/static/echarts/{{jsfile_name}}.js"></script>
{% endfor %}
</head>
<body>
<!--|safe 过滤器, 不对字符串进行转义-->
{{myechart|safe}}
</body>
######################## debug ###############################
报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737:
打开:
File "E:\software\Anaconda\lib\site-packages\django\views\debug.py", line 332, in get_traceback_html
t = DEBUG_ENGINE.from_string(fh.read())
在331行修改: .open(encoding="utf-8") as fh
python + django + echart 构建中型项目的更多相关文章
- Python Django(WEB电商项目构建)
(坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,模板T和视图V组成. 安装Pyth ...
- python+Django创建第一个项目
1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...
- 如何使用seajs+jQuery构建中型项目
为何有这种想法? 由于最近做的项目是用jquery+seajs集成的,所以就突发奇想 如何使用seajs+jquery能更好的构建项目,比如能解决模块化,模块与模块之间的依赖,文件上线后打包,压缩等能 ...
- python django -7 Git与项目
git的使用,主要包括: 本地仓库的命令 远程仓库的命令 项目需求.页面.模型类的设计,及页面的使用 Git简介 Git是目前世界上最先进的分布式版本控制系统 安装 sudo apt-get inst ...
- python django 重新安装不能创建项目
这里仅给大家做个思路提醒: 1.如果在别的地方找到一样的问题那就按别的方法去解决 2.如果是创建startproject的时候 报错:no module named 'mysite' 这个的话就和 ...
- Django-Multitenant,分布式多租户数据库项目实战(Python/Django+Postgres+Citus)
Python/Django 支持分布式多租户数据库,如 Postgres+Citus. 通过将租户上下文添加到您的查询来实现轻松横向扩展,使数据库(例如 Citus)能够有效地将查询路由到正确的数据库 ...
- Python Django CMDB项目实战之-3创建form表单,并在前端页面上展示
基于之前的项目代码 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页.index页.文章页面 Python Django CMDB项目实战之-2创建APP. ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
- Python Django CMDB项目实战之-1如何开启一个Django-并设置base页、index页、文章页面
1.环境 win10 python 2.7.14 django 1.8.2 需要用到的依赖包:MySQLdb(数据库的接口包).PIL/pillow(处理图片的包) 安装命令: pip install ...
随机推荐
- Python + PyQt5 实现美剧爬虫可视工具(二)
美剧<权力的游戏>终于开播最后一季了,在上周写了个简单的可视化美剧的爬虫软件来爬取美剧,链接:https://www.cnblogs.com/weijiutao/p/10614694.ht ...
- 《前端之路》之 operator 操作符的优先级
Github传送门,欢迎 Star - - Github地址,欢迎 Star
- DotNetCore跨平台~EFCore2.0连接Mysql的烦恼-已解决
回到目录 对于传统的nuget包,我们习惯上用官方或者大型组织的,因为它们比较考靠谱,但就在前两天.net core2.0发布后,我把efcore也升级到2.0了,mysql.EfCore也升级到支持 ...
- Linux磁盘管理及LVM讲解(week2_day2)--技术流ken
硬盘接口 从整体的角度上,硬盘接口分为IDE.SATA.SCSI和SAS四种,IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而SAS只在高端服务器上,价 ...
- docker daemon 配置文件
Ubuntu Ubuntu 14.04 配置文件位于 /etc/init/docker.conf Ubuntu 15.04 配置文件位于 /etc/default/docker,修改配置项DOCKER ...
- Java中数组的插入,删除,扩张
Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...
- 模板引擎artTemplate的使用
1.引入template文件 <script src = js/template-native.js></script> 2.写模板 <script type=" ...
- SpringAOP(5)
2019-03-08/14:22:58 演示:登陆核心业务类与日志周边功能实现AOP面向切面思想 jar包:https://share.weiyun.com/5GOFouP 学习资料:http://h ...
- nlp词性标注
nlp词性标注 与分词函数不同,jieba库和pyltp库词性标注函数上形式相差极大. jieba的词性标注函数与分词函数相近,jieba.posseg.cut(sentence,HMM=True)函 ...
- Android为TV端助力:intent传递消息
我们都知道一个activity向另外一个activity传递消息可以用intent来传递 现在需求如下,一个不断接收消息服务的service,一个收到消息进行处理的activity service第一 ...