Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)
Django 初探--Django的开发服务器及创建数据库(笔记)
1、Django的开发服务器
Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发。
在我们创建的Django_Pro项目的目录下,打开Dos命令行,启动内置服务器:
manage.py runserver
默认情况下,使用命令manage.py runserver 启动内置服务器,默认使用本机8000端口,若需要使用其他端口(例如8001),则使用命令
manage.py runserver 8001
上面两个命令只在本机进行监听,也就是说Django只接收来自本机的连接。当接受来自其他主机的请求时,使用命令
manage.py runserver 0.0.0.0:8000
该语句表示对本机的所有网络接口监听8000端口,可以满足多人合作开发和测试Django项目的需求,同时也可以使用其他主机来访问此web服务器。
启动浏览器,输入http://localhost:8000,连接此web服务器,显示Django项目的初始化页面,说明Django框架已正确安装并生成一个项目。
2、创建数据库
此处,我们使用SQLite数据库引擎。在运行服务器后,在该文件夹下自动生成了db.sqlite3文件。
如果没有该文件,则需要配置并创建数据库。
修改setting.py文件中的DATABASES字典,配置ENGINE用来指定使用的是sqlite3类型的数据库,并配置NAME,指定要使用的数据库文件为db.sqlite3
1
2
3
4
5
6
|
DATABASES = { 'default' : { 'ENGINE' : 'django.db.backends.sqlite3' , 'NAME' : os.path.join(BASE_DIR, 'db.sqlite3' ), } } |
接着用命令生成数据库:manage.py suncdb,并配置用户名和密码都为admin
使用SQLiteManager打开Django_Pro目录下的db.sqlite3文件,显示结果如下
3、生成Django应用
Django框架的网站,可能会有多个Django应用。可以使用manage.py文件的startapp子命令生成Django应用。
例如,切换到Django_pro目录下的命令框,在该目录下会生成一个Users目录,此目录中的文件定义了应用的数据模型以及处理方式。
Users目录下的文件:
__init__.py: 空文件,但是必需的。用来将整个应用作为一个Python模块加载。
models.py: 定义数据模型相关的信息。
tests.py: 该应用的测试文件
views.py: 包含与此模型的视图相关的信息
4、创建数据模型
创建应用后,需要定义保存在数据库中的数据。数据模型是一组相关对象的定义,包括类、属性和对象之间的关系。
我们可以通过修改Django应用中的models.py文件来实现创建数据模型。models.py文件定义了要保存到数据库中的表。
我们定义一个Users表:
1
2
3
4
5
6
7
8
9
10
11
|
from django.db import models # Create your models here. class Users(models.Model): username = models.CharField( '用户名' ,max_length = 20 ) #生成字段 password = models.CharField( '密码' ,max_length = 20 ) realname = models.CharField( '真实姓名' ,max_length = 255 ) sex = models.CharField( '性别' ,max_length = 10 ) email = models.EmailField( '电子邮箱' ,blank = True ) def __str__( self ): return '%s' % ( self .name) |
Users类定义了5个字段来描述用户的相关信息,CharField()方法用来生成字段,两个参数:第一个表示在数据库中保存的字段名称,第二个表示该字段的最大长度限制。
__str__()方法用来描述类。
创建数据模型后,需要在setting.py文件中加入此应用。
INSTALLED_APPS元组中添加 'Django_Pro.Users',用来将刚刚生成的Django应用加入到整个Django项目中
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' , 'Django_Pro.Users' , ) |
将此应用加入到项目中,可以继续使用syncdb在数据库中生成未创建的数据模型
Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)的更多相关文章
- Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法
一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...
- Django 初探--Django的开发服务器及创建数据库(笔记)
1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...
- Python之路(第二十一篇) re模块
一.re模块 正则表达式本身是一种小型的.高度专业化的编程语言,正则表达式就是字符串的匹配规则,在多数编程语言里都有相应的支持,python里对应的模块是re,正则表达式模式被编译成一系列的字节码,然 ...
- Python之路(第十三篇)time模块、random模块、string模块、验证码练习
一.time模块 三种时间表示 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.(从 ...
- Python之路(第二十篇) subprocess模块
一.subprocess模块 subprocess英文意思:子进程 那什么是进程呢? (一)关于进程的相关理论基础知识 进程是对正在运行程序的一个抽象,进程的概念起源于操作系统,是操作系统最核心的概念 ...
- Python之路(第二十七篇) 面向对象进阶:内置方法、描述符
一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()( ...
- Python开发【第二十三篇】:持续更新中...
Python开发[第二十三篇]:持续更新中...
- Python之路,Day14 - It's time for Django
Python之路,Day14 - It's time for Django 本节内容 Django流程介绍 Django url Django view Django models Django ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
随机推荐
- CSS3/SVG clip-path路径剪裁遮罩属性简介
一.SVG属性和CSS3属性千丝万缕的关系 CSS3新增属性除了我们现在用的比较多的border-radius, box-shadow, gradient, ...之类,还有很重要的一个分支:SVG属 ...
- 期待已久的2012年度最佳jQuery插件揭晓
近日,国外著名博客WDL发布了2012年度最佳 jQuery 插件.jQuery 自2006年发布以来,经过6年的迅速发展,目前已是最流行和使用最广泛的 JavaScript 框架,这主要归功于众多围 ...
- ActiveX添加测试工程, 出现的问题[非选择性参数][找不到成员]
ActiveX 添加测试工程 1.新建工程MFC application, 2.添加完毕,在main Dialog中, 右键[Insert Activex Control],选择你的ActiveX控件 ...
- NGINX(二)内存池
ngxin中为了加快内存分配的速度,引入了内存池, 大块申请, 减少分配次数, 小块分割, 极大的提高了内存申请速度, 另外一个用途就是省去了很多内存管理的任务,因为这里没有提供内存释放的功能,也就是 ...
- xilinx cpld XC95144XL 最小系统板
手上有几块xilinx的CPLD芯片XC95144,闲着无聊,打样的几块板子回来玩玩. 全部引脚引出,外接4个LED灯和一个Power灯,做成了50mm*50mm的板子,省钱(O(∩_∩)O). 下面 ...
- Spark的几种运行模式
1.local单机模式,结果xshell可见:./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[1 ...
- POJ2192 - Zipper(区间DP)
题目大意 给定三个字符串s1,s2,s3,判断由s1和s2的字符能否组成字符串s3,并且要求组合后的字符串必须是s1,s2中原来的顺序. 题解 用dp[i][j]表示s1的前i个字符和s2的前j个字符 ...
- Stack Overflow 上人气最旺的 10 个 Java 问题
1. 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较: public static void main(String ...
- 问题-Fastreport4 Memo打印时中文显示不全
问题现象:在使用Fastreport4制作打印工具时,发现Memo显示中文老是显不不全. 问题原因:可能是因为字符编码的原因,希望高人指点. 问题处理:将属性font-charset设置为DEFAUL ...
- javascript如何判断一个对象是否是窗口
<!DOCTYPE html> <html> <head> </head> <body> <script type="tex ...