【Python学习笔记】Django下创建与数据库连接的app
声明:本文是依据网络教程的自我总结。
1.首先修改settings.py,修改其连接数据库信息:
1 2 3 4 5 6 7 8 9 10 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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‘:
1 2 3 4 5 6 7 8 9 | 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可以供编辑:
1 2 3 4 5 6 7 8 9 10 11 12 | 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
现在可以可视化操作数据库了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步