Django框架入门(二)

继续上篇的内容,接着通过ORM框架、设计模型来对模型这一知识点有个基本的掌握。

1.ORM框架

    简要的一个映射关系,如图所示:

 2.设计模型案例

 在上篇的基础上修改数据库为mysql数据库;

     (1)安装pymysql;

Pip install pymysql

     (2)配置mysqldb,在项目主目录下的__init__.py中配置mysqldb;

import pymysql
pymsyql.install_as_MySQLdb()

     (3)在mysql中创建数据库eles;

  

     (4)修改settings.py中数据库的配置选项;

DATABASES = {
    'default' : {
        'ENGINE' : 'django.db.backends.mysql',
        'NAME' : 'eles',
        'HOST' : 'localhost',
        'USER' : 'root',
        'PASSWORD' : '112233',
        'PORT' : 3306
    }
}

 接着开始创建应用;

    (1)在创建应用程序前,要先进入项目目录myweb;

cd myweb

     (2)进入myweb目录后,创建“myapp”应用程序,此时需要manage.py来交互,命令如下;

python manage.py startapp myapp

     (3)成功创建myapp应用程序后,需要把它注册到Django项目“myweb”中,即到settings.py文                件中更新INSTALLED_APPS列表值;

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',   # 添加
]

 开始定义模型类,在创建的myapp程序的models.py文件中编写如下代码:

from django.db import models

# Create your models here.
# 自定义电脑类
class Computer(models.Model):
    cbrand = models.CharField(max_length=10)
    cprice = models.FloatField()
    cpub_time = models.DateField()
    cfactoryid = models.ForeignKey("FactoryInfo")

    def __str__(self):
        return self.cbrand

# 自定义厂家类
class FactoryInfo(models.Model):
    fname = models.CharField(max_length=10)
    flisted = models.BooleanField()
    fcontent = models.CharField(max_length=100)

    def __str__(self):
        return self.fname + ":" + self.fcontent

  注意在生成迁移文件前要在myweb/myweb/__init__.py文件中引入,如下:

import pymysql

pymysql.install_as_MySQLdb()

  最后生成数据表,先将其生成迁移文件,然后执行SQL语句生成数据表;

python manage.py makemigrations

                                  迁移文件:

                                  

python manage.py migrate

 到这里在Django中生成一个简单的数据表就完成了,若要对表的数据进行增删查改的操作,,则   可进入Python Shell脚本;

python manage.py shell

   简单的了解以下几个操作函数,便可对数据进行增删查改操作,如下图:

3.后台管理

   在往数据表中添加数据内容后,开始创建一个管理员;

python manage.py createsuperuser

   注册完用户名、密码等后,进入浏览器进行访问;

   

   当成功进入到管理站点后,可默认对groups、users进行管理;

  

   自定义管理页面 :

  (1)本地化处理:若要整个页面中文化,则需要编辑settings.py文件的编码;

LANGUAGE_CODE = 'en-us'
# 修改成
LANGUAGE_CODE = 'zh-Hans'

         以及时区的修改;

TIME_ZONE = 'UTC'
# 修改
TIME_ZONE = 'Asia/Shanghai'

    当编辑完上述的LAGUAGE_CODE和TIME_ZONE后,再启动服务器,可看到整个页面中文化;

   

 (2)注册模型及自定义管理界面:

         为了把生成的数据表显示出来则需要向myweb/myapp/admin.py文件中注册模型;

from django.contrib import admin

# Register your models here.
from .models import Computer,FactoryInfo

# 定义后台类展示设置
class computerAdmin(admin.ModelAdmin):
    list_display = ['id','cbrand','cprice','cpub_time','cfactoryid_id']
    search_fields = ['cbrand']

class factoryinfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'fname', 'flisted', 'fcontent']

# 注册
admin.site.register(Computer,computerAdmin)
admin.site.register(FactoryInfo,factoryinfoAdmin)

 注意:若在 Book 类中的__str__()方法中返回中文且在修改和添加时会报ascii 的错误,则可以在 __str__()方法中,将字符串末尾添加“.encode('utf-8')”即可。

 完成上述后,刷新管理页面,如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值