博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建app-django
阅读量:5252 次
发布时间:2019-06-14

本文共 2971 字,大约阅读时间需要 9 分钟。

创建app-django

@(python)

创建app

Django规定,如果要使用模型,必须要创建一个app。在上一篇中我们创建的是project,project和app的区别就是:一个project包含很多个Django app以及对它们的配置,一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。下面的语句创建了一个名为users的app,这个目录包含了这个app的模型models.py和视图views.py,它们都是空的。

python manage.py startapp users

会生成一个user的文件夹,里面存有的文件如下:

-rw-rw-r-- 1 linaro linaro 0 Jan 11 07:29 init.py

-rw-rw-r-- 1 linaro linaro 63 Jan 11 07:29 admin.py
drwxrwxr-x 2 linaro linaro 4096 Jan 11 07:29 migrations/
-rw-rw-r-- 1 linaro linaro 57 Jan 11 07:29 models.py
-rw-rw-r-- 1 linaro linaro 60 Jan 11 07:29 tests.py
-rw-rw-r-- 1 linaro linaro 63 Jan 11 07:29 views.py

models.py:模型文件,用 Python 类来描述数据表。

views.py:视图文件,用来联系模型与模版,主要的业务逻辑一般都写在这里。
tests.py:单元测试文件,Python的test功能很强大

定义模型

构建一个保存用户信息的数据库(名字,性别,年龄,邮箱),修改users文件夹下的model.py文件,添加一下代码

class Info(models.Model):    name = models.CharField(max_length=30)    sex = models.CharField(max_length=4)    age = models.IntegerField()    email = models.EmailField()

最后需要注意的是,我们并没有显式地为这些模型定义任何主键。 除非你单独指明,否则Django会自动为每个模型生成一个自增长的整数主键字段每个Django模型都要求有单独的主键。id

在settings.py增加users app,

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

创建数据表

  • 生成并激活model,执行python manage.py makemigrations users
    输出是
linaro@cubietruck:~/temp/mysite$ python manage.py makemigrations usersMigrations for 'users':  0001_initial.py:    - Create model Info
  • 生成数据表,执行python manage.py migrate
    输出是
linaro@cubietruck:~/temp/mysite$ python manage.py migrateOperations to perform:  Apply all migrations: usersRunning migrations:  Rendering model states... DONE  Applying users.0001_initial... OK

此时dtest数据库生成两个表,如下

+-------------------+| Tables_in_dtest   |+-------------------+| django_migrations || users_info        |+-------------------+2 rows in set (0.00 sec)
mysql> select * from django_migrations;+----+-------+--------------+---------------------+| id | app   | name         | applied             |+----+-------+--------------+---------------------+|  1 | users | 0001_initial | 2010-01-11 07:55:33 |+----+-------+--------------+---------------------+1 row in set (0.00 sec)

每次修改models.py文件后都要重复以上步骤来激活models和更新数据库。

此时可以对数据表进行操作

>>> from users.models import Info>>> Info.objects.all()                                                                                                                       []>>> i = Info(name='liton',sex='male',age='18',email='qq@qq.com')>>> Info.objects.all()[]>>> i.save()>>> Info.objects.all()[
]>>> i.name'liton'>>> i.email='qq@163.com'>>> i.save()>>> i.email'qq@163.com'

查看数据表users_info ,可以看到新增的数据

mysql> select * from users_info;+----+-------+------+-----+------------+| id | name  | sex  | age | email      |+----+-------+------+-----+------------+|  1 | liton | male |  18 | qq@163.com |+----+-------+------+-----+------------+1 row in set (0.00 sec)

转载于:https://www.cnblogs.com/liton/p/4239974.html

你可能感兴趣的文章
jQuery插件开发详细教程
查看>>
Crontab 在linux中的非常有用的Schedule Jobs
查看>>
ProxySQL Scheduler
查看>>
源代码的下载和编译读后感
查看>>
Kafka学习笔记
查看>>
Octotree Chrome安装与使用方法
查看>>
用CALayer实现下载进度条控件
查看>>
Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
查看>>
趣谈Java变量的可见性问题
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
java string
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>
JAVA跨域CORS
查看>>
正确的在循环list的时候删除list里面的元素
查看>>
ecshop安装常见问题及解决办法
查看>>
解决windows系统的oracle数据库不能启动ora-00119和ora-00130的问题
查看>>
ip相关问题解答
查看>>