python自动化运维学习第十六天--models基本使用和基本命令

modules基本使用

models是数据库的api,可以对数据库进行增删改查等操作。
学习阶段使用的数据库是sqllite,使用其他数据库可以修改settings.py文件中的配置项。使用数据库前需要在数据库中提前创建一个库,表可以通过models创建。
使用models.py文件创建一个表

from django.db import models

class UserInfo(modules.model):       #创建一个类,类名会作为表名的一部分
    username = models.CharField(max_length=32,null=True)     #创建一个表中的字段,字段名为username,char类型,长度32,可以为空
    password = models.CharField(max_length=32,null=True)     #创建一个表中的字段,字段名为password,char类型,长度32,可以为空

然后在pycharm下边的terminal界面输入如下命令

>>>python manage.py makemigrations  #执行的命令
Migrations for 'demo':            #输出的内容
  demo\migrations\0001_initial.py
    - Create model UserInfo

再执行
python manage.py migrate
创建了一个有3个字段的表,其中第一个字段名为id,是默认创建的自增字段。
在这里插入图片描述
执行后会在左侧项目下创建一个db.sqllite3的文件,把它拖到右侧的database下
在这里插入图片描述这样就能看到创建的数据库表了
在这里插入图片描述
其中demo_userinfo是创建的表,表名为application name加下划线加创建的类名组成。其他都是django默认创建的表。
修改前边写的views.py文件

from django.shortcuts import render,HttpResponse,redirect
from demo import models       #导入刚才写的demo包下的models模块

def login(request):
    a = ['biaoti','geshi',0,1]
    if request.method=='GET':
        obj_li = models.UserInfo.objects.all()     #obj_li为QuerySetList,后边的all表示表中所有数据,每个QuerySet就是数据库中一条数据的对象
        #obj_li = models.UserInfo.objects.filter(username='test')    #根据条件查询,相当于sql中的where,obj_li拿到的数据都是QuerySetList
        #for obj in obj_li:
        #    print("username: ", obj.username)
        #    print("password: ", obj.password)
    return render(request, 'login.html', locals())

修改login.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>{{ a.0 }}</h1>       <!--读取views.py文件中的a变量第0个值,即列表切片的第0个值-->

    {% for item in obj_li %}     <!--循环读取views.py文件中obj_li对象-->
        <div>
        <span>{{ item.username }}</span>    <!--读取每个对象的username字段值-->
        <span>{{ item.password }}</span>    <!--读取每个对象的password字段值-->
        </div>
    {% endfor %}
</body>
</html>

在数据库表中添加一些数据,启动django,访问http://127.0.0.1:8000/login/ 就是出现如下内容
在这里插入图片描述

基本命令

Django基本命令,在终端执行,也可以在pycharm的terminal中执行

  1. 创建一个django project
    django-admin.py startproject mysite

  2. 在mysite目录下创建应用,比如blog:
    python manage.py startapp blog
    在项目下添加应用时就可以执行这条命令

  3. 启动django项目
    python manage.py runserver ip:port
    ip和port可以不写,默认是127.0.0.1:8000

  4. 同步更改数据库表或字段
    python manage.py syncdb
    注意:Django 1.7.1 及以上的版本需要用以下命令

    python manage.py makemigrations
    python manage.py migrate
    

    这种方法可以创建表,当你在models.py中新增了类时,运行它就可以自动在数据库中创建表了,不用手动创建。

  5. 清空数据库
    python manage.py flush
    此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。

  6. 创建超级管理员

    python manage.py createsuperuser
     # 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填
     # 修改用户密码可以用:
    python manage.py changepassword username
  1. Django 项目环境终端
    python manage.py shell
    一般调试时使用
  2. Django 项目环境终端
    python manage.py dbshell
    同上条
  3. 更多命令
    python manage.py
  4. static配置
#STATIC文件可以配置STATICFILES_DIRS,指定额外的静态文件存储位置。
    #  STATIC_URL的含义与MEDIA_URL类似。
    # ----------------------------------------------------------------------------
    #注意1:
        #为了后端的更改不会影响前端的引入,避免造成前端大量修改
        
        STATIC_URL = '/static/'               #引用名
        STATICFILES_DIRS = (
            os.path.join(BASE_DIR,"statics")  #实际名 ,即实际文件夹的名字
        )

        #django对引用名和实际名进行映射,引用时,只能按照引用名来,不能按实际名去找
        #<script src="/statics/jquery-3.1.1.js"></script>
        #------error-----不能直接用,必须用STATIC_URL = '/static/':
        #<script src="/static/jquery-3.1.1.js"></script>

    #注意2(statics文件夹写在不同的app下,静态文件的调用):

        STATIC_URL = '/static/'

        STATICFILES_DIRS=(
            ('hello',os.path.join(BASE_DIR,"app01","statics")) ,
        )

        #<script src="/static/hello/jquery-1.8.2.min.js"></script>

    #注意3:
        STATIC_URL = '/static/'
        {% load staticfiles %}
       # <script src={% static "jquery-1.8.2.min.js" %}></script>

猜你喜欢

转载自blog.csdn.net/wang035759984/article/details/85085371