• 【Python学习笔记】Django下创建与数据库连接的app


    声明:本文是依据网络教程的自我总结。

    1.首先修改settings.py,修改其连接数据库信息:

    DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'liutest',
              'USER': 'root',
              'PASSWORD': '******',
              'HOST':'127.0.0.1',
              'PORT':'3306',
          }
     }

    2.在mysql中先建立一个数据库:

    create database liutest;

    还可以下面语句校验模型的有效性:

    python manage.py validate

     

    3.创建app:

    python manage.py startapp books

    修改app文件夹下的models.py:

    from django.db import models
    
    # Create your models here.
    class Publisher(models.Model):
        name = models.CharField(max_length=30)
        address = models.CharField(max_length=50)
        city = models.CharField(max_length=60)
        state_province = models.CharField(max_length=30)
        country = models.CharField(max_length=50)
        website = models.URLField()
    
    class Author(models.Model):
        first_name = models.CharField(max_length=30)
        last_name = models.CharField(max_length=40)
        email = models.EmailField()
    
    class Book(models.Model):
        title = models.CharField(max_length=100)
        authors = models.ManyToManyField(Author)
        publisher = models.ForeignKey(Publisher)
        publication_date = models.DateField()
    

    同时,修改settings.py,添加我的app’books‘:

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'books',
    )
    

    4.执行 python manage.py syncdb:

    其中,设置了一个账户,用于管理django站点中的admin。

    注意:此时数据库中并没有添加数据表。use liutest       show tables;  结果是empty 

    5. 1)如果重新执行python manage.py syncdb,则会有如下提示:

    2)根据提示依次输入python manage.py makemigrations

       查数据库,结果:

        

    3)接着执行python manage.py migrate:

       成功。检查数据库,已有所要添加的表:

       

    6.设置内置的admin应用:

    自动化的后台应用程序admin可以说是Django“皇冠上的明珠”。由于自动admin不是Django的必要组件,因此你先要在settings.py文件中指定。
    但是呢,这次用的 Django1.8版本中默认的已经启用了如下app。所以在settings.py中的INSTALLED_APPS和urls.py上不做应用的添加的修改。

    最后,在默认的admin站点注册你的app model,可以使Django知道要在admin窗口中显示哪一个model可以供编辑:

    from django.contrib import admin
    
    # Register your models here.
    from books.models import Publisher, Author, Book
    
    class AuthorAdmin(admin.ModelAdmin):
        list_display=('first_name','last_name','email')
        search_fields=('first_name','last_name')
    
    admin.site.register(Publisher)
    admin.site.register(Author,AuthorAdmin)
    admin.site.register(Book)
    

      

    7.运行开发服务器  python manage.py runserver 8001

      地址栏输入:http://127.0.0.1:8001/admin

    现在可以可视化操作数据库了。

  • 相关阅读:
    How can TCP ACKs be used to measure latency to a server?
    信息安全技术实用教程(第4版)
    java.util基础复习
    Java.IO基础复习
    vue3 打包插件后出现的带有slot的插件报 reading isCE问题
    vue3的一些基本常识(slot,ref)
    webpack常用配置说明(以webpack5为主)
    谷歌上不能在页面加载的时候播放音频解决办法
    vite vue插件打包配置
    Vue3中typescript编译遇到的问题(props的validator)
  • 原文地址:https://www.cnblogs.com/snapeliu/p/4543635.html
Copyright © 2020-2023  润新知