編寫cmdb雜記
https://www.cnblogs.com/djangocn/p/9538551.html
1、安裝依賴包,python3,pip3
2、安裝虛擬化環境,創建虛擬環境
pip3 install virtualenv
pip3 install django (如果用於生產的話,則需要指定安裝和你項目相同的版本)
pip3 install uwsgi
給uwsgi建立軟鏈接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
創建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!'
}
}
創建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 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 url
app_name = 'App'
from App.views import VmManager
urlpatterns = [
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、修改url
7、添加views
8、啓動項目 python3 manage.py runserver 0.0.0.0:8000
9、爲uwsgi配置xml文件
uwsgi -x mysite.xml
10、安裝配置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',
}
}
https://www.cnblogs.com/pinsily/p/7635344.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
-- coding: utf-8 --
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),
]
查找uwsgi進程,並殺死
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
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文件
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
這樣就完成了.