编写cmdb杂记
http://www.javashuo.com/article/p-ylgouxir-c.html
一、安装依赖包,python3,pip3
二、安装虚拟化环境,建立虚拟环境
pip3 install virtualenv
pip3 install django (若是用于生产的话,则须要指定安装和你项目相同的版本)
pip3 install uwsgi
给uwsgi创建软连接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgihtml
建立mycmdb环境 virtualenv --python=/usr/bin/python mycmdb 运行mycmdb source /data/env/mycmdb/bin/activate 建立django项目 django-admin.py startproject mycmdb django-admin.py startproject VmDemo django-admin.py startproject YmeCmdb 建立APP python manage.py startapp zichan python manage.py startapp App python manage.py startapp YmeZichan 进入项目文件夹/data/wwwroot/mycmdb,添加static和templates,分别用于存放静态文件和模板文件。 编辑项目里mycmdb/settings.py文件 添加APP,修改容许访问的host,添加模板路径,尾部添加static路径 模板下面建立html文件 配置url 编写views 启动项目 url拆开,views拆开 django入门学习之views拆分 http://baijiahao.baidu.com/s?id=1585298047388426928&wfr=spider&for=pc 在APP下级目录新建一个views文件下,在views文件夹下建立一个空的__init__.py
修改settings文件添加数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'VmDemo',
'HOST':'127.0.0.1',
'PORT':'3306',
'USER':'root',
'PASSWORD':'Yme0926!'
}
}python
建立models,建立数据库表
python manage.py shell 进入命令
同步数据库
python manage.py makemigrations
python manage.py migrate
python3.报“ImportError: No module named ‘MySQLdb
https://www.cnblogs.com/TaleG/p/6735099.html
方法解析:
MySQLdb只支持Python2.,还不支持3.*
能够用PyMySQL代替。安装方法:pip install PyMySQLmysql
而后在须要的项目中,把 __init__.py中添加两行: import pymysql pymysql.install_as_MySQLdb() 就能够用 import MySQLdb了。其余的方法与MySQLdb同样。
项目迁移步骤
在项目目录下用下面的命令把当前的环境依赖包导出到requirements.txt文件
pip freeze > requirements.txtnginx
安装requirements.txt里的依赖。 pip install -r requirements.txt
工程的url,包含APP的url
VmDemo url (include App)
from django.conf.urls import url,include
url(r'^', include('App.urls',namespace='App')),web
下一步编写APP下面的url,url中导入app下面的views ,
from django.conf.urls import url
app_name = 'App'
from App.views import VmManager
urlpatterns = [
url(r'^$', VmManager.index,name='index'),
]sql
vmname = data.get('vmname') Ip01 = data.get('Ip01') Ip02 = data.get('Ip02') business = data.get('business') buspurpose = data.get('buspurpose') system = data.get('system') users = data.get('users') remarks = data.get('remarks')
vmname=vmname,Ip01=Ip01,Ip02=Ip02,business=business,buspurpose=buspurpose,system=system,users=users,remarks=remarksshell
insert into Assets values("myname" , "192ip", "192ip", "mybus","mybuspur","mysys","myuser","myremarks")数据库
三、安装uwsgi
四、建立django项目
建立APP,并添加
修改hosts,templates 模板
五、建立html文件
六、修改url
七、添加views
八、启动项目 python3 manage.py runserver 0.0.0.0:8000
九、为uwsgi配置xml文件
uwsgi -x mysite.xmldjango
十、安装配置nginxapp
安装mysql 修改mysql密码 Yme0926! ALTER USER 'root'@'localhost' IDENTIFIED BY 'Yme0926!'; 可视化工具的登陆受权:(若是受权不成功,请查看防火墙) 操做完成上面的,如今还不能用可视化的客户端进行链接,须要咱们进行受权: grant all on *.* to root@'%' identified by 'Yme0926!'; 大功告成!!!
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 或者使用 mysql.connector.django
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'test123',
'HOST':'localhost',
'PORT':'3306',
}
}
http://www.javashuo.com/article/p-kwufazva-bh.html
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
python manage.py makemigrations TestModel
python manage.py migrate TestModel
cat TestModel/models.py
from django.db import models
# Create your models here. class Test(models.Model): name = models.CharField(max_length=20)
cat TestModel/testdb.py
from django.http import HttpResponse from TestModel.models import Test # 数据库操做 def testdb(request): test1 = Test(name='runoob') test1.save() return HttpResponse("<p>数据添加成功!</p>")
cat mysite/urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', btest.testdb),
url(r'^test$', testdb.testdb),
url(r'^testdb/', testdb.testdb),
url(r'', views.index),
]
ps -ef |grep uwsgi |awk '{print $2}'|xargs kill -9
uwsgi -x mysite.xml #重启uwsgi
#初始化数据库的命令
python manage.py migrate
python manage.py makemigrations TestModel
python manage.py migrate TestModel
#django html新增展现mysql数据库内容
https://blog.csdn.net/qy20115549/article/details/78439693
一、建立app,建立数据库
二、填写views, 接收网页post数据,
定义insert 函数,填写接收的字段,并保存到数据库
三、定义展现show函数
设置列表接收数据库查找的全部内容,将列表返回给show页面
#定义展现函数
def list(request):
people_list = models.message.objects.all()
return render(request, 'show.html', {"people_list":people_list})
四、编写insert.html页面,csrf 模块通post方式提交数据,submit提交
<form action="/insert/" method="post"> {% csrf_token %}
五、编写show.html 页面,
接收show函数返回的列表,html页面使用for循环读取列表
{% for line in people_list %}
<tr>
<td>{{line.username}}</td>
<td>{{line.password}}</td>
</tr>
{% endfor %}
六、设置url,就能够经过web访问了
七、在app目录下建立属于app本身的urls.py文件
https://my.oschina.net/epoch/blog/1788273
主url文件import include ,app下面建立urls.py文件
missing 1 required positional argument: 'self'的可能错误缘由
python 实例化类,类名后面添加() ,至关于self
django从新生成数据库中的某张表
https://blog.csdn.net/ros_donggua/article/details/82118739
今天有碰到这种状况,数据库中有张表没办法经过migration来更改, migrate时报 django.db.utils.OperationalError: (1050, “Table ‘表名’ already exists)索性就直接把这张表删了从新导.
1 删除数据库中的django_migration 表 以及 删除你要从新导的表
2 将你要导的那个app中的migrate 文件删除掉
3 进行虚拟导入
migrate --fake
虚拟导入会从新生成django_migration 表 而且里面有以前的导入记录(避免在执行migrate时从新导入已存在的表),除了你第二步删的那个文件里的那些记录.
4 从新导入你须要的表
makemigration shop(你要导的app)migrate shop这样就完成了.