Django学习之天气调查实例(1):工程的开始
开始学习Django,一步一个脚印的进行。思考再三,还是以一个实例来开始学习。手里面正好有几万条单位天气传感器收集的数据,想做一个网页版的天气统计查询之类的小应用,也可以给学生体验,方便教学的进行(尽管教学目前不适用Python)。
前面通过近1个月的努力,终于把部署的环境(基于ubuntu server+apache+mod-wsgi)弄清楚了,现在开发环境准备这样进行:
- 开发环境:windows10 + python3.6 + Django1.11,IDE可以采用Pycharm;
- 部署环境:Ubuntu16.04 + apache2.4 + Django1.11 + MySQL 。
1.创建工程
现在指定工程名称为:website
通过命令:
django-admin.py startproject website
创建成果后,进入文件夹 website,运行命令:
python manage.py runserver
若显示上图所示,则表示创建成功。
成功运行后,需要设置数据库的连接,打开settings.py文件,在database部分连接mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 或者使用 mysql.connector.django
'NAME': 'website',
'USER': '用户名',
'PASSWORD': '密码',
'HOST':'IP地址',
'PORT':'',
}
}
2.创建模型:
由于Django的开发也是基于MVC的架构,所以数据模型是数据库与页面数据的中间实体。创建数据模型使用 startapp命令,如下:
django-admin startapp webModel
创建成功后会创建webModel的文件夹。进入该文件夹,打开models.py 文件,可以创建数据模型了。首先创建一个"Users"的数据模型,包含“username”和“password”两个字符字段,具体如下:
class Users(models.Model):
username=models.CharField(max_length=)
password=models.CharField(max_length=)
打开 settings.py文件,将“webModel”添加到里面如下:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel', # 添加此项
)
完成后,通过3条语句来实现数据实体反映倒是数据库,即在数据库创建数据表。
python manage.py migrate # 启动迁移 python manage.py makemigrations webModel # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate webModel # 迁移数据变化
完成后观察数据库,发现数据表已经顺利创建完成
若是第一次的模型添加时还缺少字段,如现在添加一个创建日期 createdt,model.py如下所示:
class Users(models.Model):
username=models.CharField(max_length=20)
password=models.CharField(max_length=32)
createdt=models.DateField("创建时间",default = timezone.now()) #新增
新增字段后,需要重新迁移,才能更新到数据库,执行如下命令:
python manage.py makemigrations webModel # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate webModel # 迁移数据变化
至此,数据模型创建完毕,以后需要什么模型时到时候再创建即可。
Django学习之天气调查实例(1):工程的开始的更多相关文章
- Django学习之天气调查实例(3):部署静态文件CSS、JS、images等(部署环境基于Ubuntu)
在设计登录界面时,采用了网上下载的登录模板,漂亮,简易.但是在测试和部署时,发现原来模板中采用的js文件和css文件,却着实让我折腾了好几天. 在以往的网页设计中,一般只要把测试站点开启后,网页中的静 ...
- Django学习之天气调查实例(2):显示数据表数据
数据表数据添加后,如添加3条用户信息,分别为“aaa”.“bbb”.“ccc”,现在通过代码的方式显示数据表中的数据. 1.在website项目文件夹中创建 userload.py文件,并且写如下代码 ...
- Django学习-25-图片验证码实例
处理流程 用户请求网页 --> 后台发送登录界面的静态页面 --> 后台在内存中生成验证码 --> 验证码保存在用户对应的Session中 --> 返回验证码图片到前端 用户登 ...
- Django学习-14-分页功能实例
首先创建一个制作page的工具类 utils --page_make.py ...
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
- django学习-数据库配置-创建模型
数据库配置 在mysite/settings.py中,包含了django项目设置的python模块 通常,这个配置文件使用SQLite作为默认数据库.如果你不熟悉数据库,或者只是想尝试下django, ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
随机推荐
- Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像
实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...
- Fiori Launchpad Tile点击后跳转的调试技巧
在SAP Fiori launchpad 里点击某个tile之后,后台会计算出跳转的目标url返回给前台. 下图中一个个白色的方框就成为tile.每个tile点击之后,会打开一个对应的Fiori应用. ...
- SSH 学习记录及在SSH模式下使用XShell连接服务器
传统的网络服务程序,如rsh.FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击 ...
- extension Kingfisher where Base: Image:泛型类型的具体化与实例化
具体化:针对特定的类型参量进行二次定义: 实例化:实例化:
- 【BZOJ4766】文艺计算姬(prufer序列)
点此看题面 大致题意: 让你求一个两边各有\(n\)和\(m\)个点的完全二分图有多少个生成树. \(prufer\)序列 这是一道比较经典的利用\(prufer\)序列结论求解答案的计数题. 大致思 ...
- 动态规划(DP),0-1背包问题
题目链接:http://poj.org/problem?id=3624 1.p[i][j]表示,背包容量为j,从i,i+1,i+2,...,n的最优解. 2.递推公式 p[i][j]=max(p[i+ ...
- 【洛谷P1272】 重建道路
重建道路 题目链接 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟一的.因此, ...
- struts2 实现文件下载方法汇总
http://pengranxiang.iteye.com/blog/259401 一.通过struts2提供的下载机制下载文件: 项目名为 struts2hello ,所使用的开发环境是MyEcli ...
- jquery 发送短信60后重新获取
先需要form表单,获取短信的按钮做成两个相同的,一个显示,一个隐藏. <div class="item"> <p clas ...
- 菜鸟笔记 -- Chapter 6.4 面向对象的三大特性
6.4.1 三大特性概述 面向对象的三大特性是Java中一个很重要的基本理念. 封装是面向对象的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的意思.采用 ...