本文共 4925 字,大约阅读时间需要 16 分钟。
编写cmdb杂记
1、安装依赖包,python3,pip3 2、安装虚拟化环境,创建虚拟环境pip3 install virtualenvpip3 install django (如果用于生产的话,则需要指定安装和你项目相同的版本)pip3 install uwsgi给uwsgi建立软链接,方便使用ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi创建mycmdb环境virtualenv --python=/usr/bin/python mycmdb运行mycmdbsource /data/env/mycmdb/bin/activate创建django项目django-admin.py startproject mycmdbdjango-admin.py startproject VmDemodjango-admin.py startproject YmeCmdb创建APPpython manage.py startapp zichanpython manage.py startapp Apppython 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!'}}创建models,创建数据库表
python manage.py shell 进入命令同步数据库python manage.py makemigrationspython manage.py migratepython3.报“ImportError: No module named ‘MySQLdb方法解析:MySQLdb只支持Python2.,还不支持3.*可以用PyMySQL代替。安装方法:pip install PyMySQL然后在需要的项目中,把 __init__.py中添加两行: import pymysql pymysql.install_as_MySQLdb() 就可以用 import MySQLdb了。其他的方法与MySQLdb一样。
项目迁移步骤
在项目目录下用下面的命令把当前的环境依赖包导出到requirements.txt文件pip freeze > requirements.txt安装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')),下一步编写APP下面的url,url中导入app下面的views ,
from django.conf.urls import urlapp_name = 'App'from App.views import VmManagerurlpatterns = [url(r'^$', VmManager.index,name='index'),]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=remarks
insert into Assets values("myname" , "192ip", "192ip", "mybus","mybuspur","mysys","myuser","myremarks")
3、安装uwsgi
4、创建django项目创建APP,并添加修改hosts,templates 模板5、创建html文件6、修改url7、添加views8、启动项目 python3 manage.py runserver 0.0.0.0:80009、为uwsgi配置xml文件uwsgi -x mysite.xml10、安装配置nginx
安装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',}} django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'python manage.py makemigrations TestModel
python manage.py migrate TestModelcat 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 HttpResponsefrom TestModel.models import Test# 数据库操作def testdb(request): test1 = Test(name='runoob') test1.save() return HttpResponse("数据添加成功!
")
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 migratepython manage.py makemigrations TestModel
python manage.py migrate TestModel#django html新增展示mysql数据库内容
1、创建app,创建数据库
2、填写views, 接收网页post数据,定义insert 函数,填写接收的字段,并保存到数据库3、定义展示show函数设置列表接收数据库查找的所有内容,将列表返回给show页面#定义展示函数def list(request):people_list = models.message.objects.all()return render(request, 'show.html', {"people_list":people_list})4、编写insert.html页面,csrf 模块通post方式提交数据,submit提交<form action="/insert/" method="post"> {% csrf_token %}5、编写show.html 页面,接收show函数返回的列表,html页面使用for循环读取列表{% for line in people_list %}<tr><td>{ {line.username}}</td><td>{ {line.password}}</td></tr>{% endfor %}6、设置url,就可以通过web访问了7、在app目录下创建属于app自己的urls.py文件主url文件import include ,app下面创建urls.py文件missing 1 required positional argument: 'self'的可能错误原因
python 实例化类,类名后面添加() ,相当于selfdjango重新生成数据库中的某张表
今天有碰到这种情况,数据库中有张表没办法通过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这样就完成了.转载于:https://blog.51cto.com/6720116/2341255