django项目

# 1、创建django项目 **进入项目路径** ``` d: cd 毕业设计\django ```` **创建项目** ``` django-admin startproject confidential-containers ``` **进入app路径** ``` d: cd 毕业设计\django\confidential_containers ``` **创建app(数据库)** ``` python manage.py startapp app ``` **在根目录下创建templates文件夹(存放html)** ::: hljs-center ![image.png](https://cos.easydoc.net/36024082/files/ludtrw5b.png) ::: **在根目录下创建static文件夹(存放hcss、jpg等)** ::: hljs-center ![image.png](https://cos.easydoc.net/36024082/files/ludws0u4.png) ::: **在app目录下创建urls.py(存放路由)** ::: hljs-center ![image.png](https://cos.easydoc.net/36024082/files/luduvlmw.png) ::: **项目文件结构** ::: hljs-center ![image.png](https://cos.easydoc.net/36024082/files/ludwsmy5.png) ::: **启动项目** ``` python manage.py runserver ``` # 2、修改配置文件 **加入新建的app** ``` #settings.py文件 INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "app" ] ``` **添加mysql数据库** ``` #settings.py文件 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'projects', 'USER':'projects', 'PASSWORD':'Project123.', 'HOST':'localhost', 'PORT':'3306', } } ``` **安装mysqlclient** ``` #settings.py文件 pip install mysqlclient ``` **修改语言和时区** ``` #settings.py文件 LANGUAGE_CODE = "zh-hans" TIME_ZONE = 'Asia/Shanghai' ``` **添加templates目录路径** ``` #settings.py文件 TEMPLATES = [ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [os.path.join(BASE_DIR, 'templates')], "APP_DIRS": True, "OPTIONS": { "context_processors": [ "django.template.context_processors.debug", "django.template.context_processors.request", "django.contrib.auth.context_processors.auth", "django.contrib.messages.context_processors.messages", ], }, }, ] ``` **加入{% load static %}** ``` #html文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Inspire - Admin and Dashboard Template</title> {% load static %} <!-- Bootstrap CSS --> <link rel="stylesheet" type="text/css" href="{% static 'assets/css/bootstrap.min.css' %}"> <!-- Fonts --> <link rel="stylesheet" type="text/css" href="{% static 'assets/fonts/line-icons.css' %}"> <!--Morris Chart CSS --> <link rel="stylesheet" href="{% static 'assets/plugins/morris/morris.css' %}"> <!-- Main Style --> <link rel="stylesheet" type="text/css" href="{% static 'assets/css/main.css' %}"> <!-- Responsive Style --> <link rel="stylesheet" type="text/css" href="{% static 'assets/css/responsive.css' %}"> ``` **添加static路径(存放css、jpg等)** ``` #settings.py文件 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] ``` **app内的views.py文件** ``` from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the index.") ``` **app内的urls.py文件** ``` from django.urls import path from . import views from django.shortcuts import render, redirect urlpatterns = [ path("", views.index), ] 或 def index(request): context = {} return render(request, "index.html", context) ``` **confidential_containers内的urls.py文件** ``` from django.contrib import admin from django.urls import path, include urlpatterns = [ path("", include("app.urls")), #path("app/", include("app.urls")), 需要127.0.0.1:8000/app path("admin/", admin.site.urls), ] ``` # 3、ssh连接虚拟机 **下载paramiko** `pip install paramiko` **app内的views.py中添加** ```python def index(request): host = '192.168.89.134' port = 22 username = 'root' password = '123456' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(host, port, username, password) command = """ kubectl get pod -A """ stdin, stdout, stderr = ssh.exec_command(command) output_lines = stdout.readlines() #读行 output_split = [line.split() for line in output_lines] #按空格隔开 first = output_split[:1] second = output_split[1:] #output = ''.join(output_lines) # 将列表转换为字符串 # output = stdout.read().decode('utf-8') error = stderr.read().decode('utf-8') ssh.close() context = {'first': first, 'second':second, 'error': error} return render(request, "index.html", context) ``` # 4、Stream源 ``` #CentOS-Stream-AppStream.repo [appstream] name=CentOS Stream $releasever - AppStream #mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=AppStream&infra=$infra baseurl=http://vault.centos.org/$contentdir/$stream/AppStream/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial ``` ``` #CentOS-Stream-BaseOS.repo [baseos] name=CentOS Stream $releasever - BaseOS #mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=BaseOS&infra=$infra baseurl=http://vault.centos.org/$contentdir/$stream/BaseOS/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial ``` ``` #CentOS-Stream-Extras.repo [extras] name=CentOS Stream $releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=extras&infra=$infra baseurl=http://vault.centos.org/$contentdir/$stream/extras/$basearch/os/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial ``` ``` #CentOS-Stream-Extras-common.repo [extras-common] name=CentOS Stream $releasever - Extras common packages #mirrorlist=http://mirrorlist.centos.org/?release=$stream&arch=$basearch&repo=extras-extras-common baseurl=http://vault.centos.org/$contentdir/$stream/extras/$basearch/extras-common/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras ``` **POD启动状态一直为ContainerCreating,提示cni0的IP与既有子网不同 报错信息** 使用 kubectl describe pods <pod-name> -n <namespace> 命令可看到提示信息 Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox “745720ffb20646054a167560299b19bb9ae046fe6c677b5d26312b89a26554e1”: failed to set bridge addr: “cni0” already has an IP address different from 172.20.2.1/24 进入到对应计算节点,使用ip a命令确认cni0的IP信息,使用cat /run/flannel/subnet.env查看flannel网络插件分配的子网IP,发现两者确实不一致。 解决办法 删掉这个IP错误的网卡cni0, 之后flanneld自动重新创建。命令如下。 ``` ifconfig cni0 down ip link delete cni0 ``` **压缩与解压缩** ``` zip -r archive.zip file1 file2 folder1 unzip archive.zip ``` **下载git-lfs并上传** ``` curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash yum install git-lfs cd coco git lfs install git lfs track "*.psd" git add .gitattributes git add file.psd git commit -m "Add design file" git push origin main ```