python之Django学习笔记(二)---Django从工程创建、app创建到表建模在页面的显示
创建工程:
在命令行中切换目录至需要创建工程的目录,然后在命令行中输入如下命令创建djangoTestPro工程
D:\PycharmProjects\untitled\MyTestProject>python D:\Python37\Lib\site-packages\Django-2.1.5-py3.7.egg\django\bin\django-admin.py startproject djangoTestPro
或者如下命令
D:\PycharmProjects\untitled\MyTestProject>django-admin startproject djangoTestPro
因为使用的pip install django安装的,django-admin.py不能直接使用,但可以使用django-admin这个命令
可以看到创建了如下目录结构的工程

下面介绍下这些文件的作用:
settings.py:工程的一些配置信息
urls.py:用来匹配接收的url,转换为函数后再到各个app的views.py中查对应函数
wsgi.py:路由选择
manage.py:创建工程后,命令都是通过这个文件来执行
创建APP:
在命令行中切换至djangoTestPro工程中,然后输入如下命令创建djangoTestApp
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py startapp djangoTestApp
可以看到创建了如下APP的目录

下面介绍下app中的文件作用:
admin.py:控制app中的样式
apps.py:
models.py:数据库建模文件
tests.py:单元测试使用
views.py:url函数,返回对应的url给前端
一个工程里面支持创建N个app,创建app之后需要在工程的settings.py中添加对应的app,不然会找不到这个app,需要在工程的settings.py中增加对应的app:

创建数据库:
在app的models.py中创建一个数据库(sqlite3)如下代码
SEX_CHOICE = (
('F','Female'),
('M','male')
)
# Create your models here.
class Student(models.Model):
No = models.CharField('学号',max_length = 10)
Name = models.CharField('姓名',max_length = 20)
Sex = models.CharField('性别',max_length = 1,choices = SEX_CHOICE,default = 'M')
Age = models.IntegerField('年龄')
然后在命令行中输入以下命令来生成数据库配置文件
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py makemigrations
Migrations for 'djangoTestApp':
djangoTestApp\migrations\0001_initial.py
- Create model student
看到已经创建了student模型,这个文件在app的migrations目录下,这时根据配置文件写入到数据库中:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py migrate Operations to perform:
Apply all migrations: admin, auth, contenttypes, djangoTestApp, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying djangoTestApp.0001_initial... OK
Applying sessions.0001_initial... OK
没有报错误,则表示已经在数据库中增加了这个表
创建超级管理员:
在命令行中输入下面命令创建超级管理员
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py createsuperuser
Username (leave blank to use ''): watertaro
Email address: 70907583@qq.com
Password:
Password (again):
Superuser created successfully.
按照步骤操作即可完成超级管理员的创建
启动服务:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver
Performing system checks... System check identified no issues (0 silenced).
March 19, 2019 - 15:36:10
Django version 2.1.5, using settings 'djangoTestPro.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
没有错误即启动成功,这时就可以根据上述给出的地址http://127.0.0.1:8000来访问了,这个地址是默认的地址,只是一个访问页面
如果要使用其他端口启动,可以使用如下命令:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver 127.0.0.1:8800
若当前环境有多个IP且多个IP都可以访问,可以写成如下:
D:\PycharmProjects\untitled\MyTestProject\djangoTestPro>python manage.py runserver 0.0.0.0:8800
可以到工程的urls.py中查看配置的url,默认只有一个admin/,我们可以使用http://127.0.0.1:8000/admin/来访问:

使用创建的超级管理员登入进去,发现没有创建的表student,因为表创建后还需要注册
注册表:
在工程的admin.py中加入如下代码
from django.contrib import admin
from .models import Student # Register your models here. admin.site.register(student)
其实就增加了俩行,一行是导入Student,一行是注册student表,这时再打开http://127.0.0.1:8000/admin就可以看到student

新增加一个student信息后,只显示了student object,感觉很丑

可以在admin.py中指定显示哪些列,代码如下:
from django.contrib import admin
from .models import student # Register your models here. class StudentAdmin(admin.ModelAdmin):
list_display = ('No','Name','Sex','Age',) admin.site.register(student,StudentAdmin)
添加好代码后,刷新页面显示如下(是不是好看多了?)

从上面操作来看,用户请求后先匹配到url(urls.py),然后找到对应函数,通过函数(views.py)到数据库中(models.py)查找数据,然后返回给前端
python之Django学习笔记(二)---Django从工程创建、app创建到表建模在页面的显示的更多相关文章
- django学习笔记二:一个项目多个App项目搭建
django充许在一个项目中存在多个app,如一个大门户网站中可以包含论坛,新闻等内容,其中每一个模块称之为一个App,也可以理解为一个个独立的小型项目最终集成在一个门户网站中最终呈现给用户 本次测试 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- Django学习笔记之Django Form表单详解
知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...
- Django学习笔记之Django中间件
准备 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰 ...
- Django学习笔记之Django Form表单
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- Django学习笔记之Django ORM相关操作
一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...
- Django 学习笔记之五 Django中数据库中ManyToManyField及ForeignKey
1.model里面的代码: from __future__ import unicode_literalsimport django.utils.timezone as timezonefrom dj ...
- Django学习笔记之Django QuerySet的方法
一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get.filter.exclude.delete神马的感觉就已经无所不能了,但随着项目但业 ...
- Django学习笔记之Django视图View
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
随机推荐
- UOJ#73. 【WC2015】未来程序 提交答案题
原文链接www.cnblogs.com/zhouzhendong/p/UOJ73.html 前言 纯属理性愉悦. 题解 Subtask1 发现就是求 $a \times b \mod c $ . 写个 ...
- cmd命令中运行pytest命令导入模块报错解决方法
报错截图 ImportError while loading conftest 'E:\python\HuaFansApi\test_case\conftest.py'. test_case\conf ...
- 20165235 实现pwd功能
20165235 实现pwd功能 要求 学习pwd命令 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3.实现mypwd 测试mypwd 实现过程 pwd是将当前的文件目录 ...
- Bicoloring 二分图+染色
https://vjudge.net/contest/281085?tdsourcetag=s_pcqq_aiomsg#problem/B #include<stdio.h> #inclu ...
- Python爬虫技术(从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类—Jason niu
网上教程太啰嗦,本人最讨厌一大堆没用的废话,直接上,就是干! 网络爬虫?非监督学习? 只有两步,只有两个步骤? Are you kidding me? Are you ok? 来吧,follow me ...
- 【转】Mac 删除文件夹里所有的.svn文件
转自: mac 删除文件夹里所有的.svn文件 想要把SVN專案作轉移或複製時 舊的「.svn」真的是很煩人的東西 最快的方式是用終端機輸入 sudo find /Users/justfly/Do ...
- RSP小组——团队冲刺博客六
RSP小组--团队冲刺博客六 冲刺日期:2018年12月18日 前言 各成员今日(12.18)完成的任务 李闻洲,赵乾宸代码合并 马瑞蕃图形后续支持,编写博客,燃尽图 蒋子行会议记录 各个成员的任务安 ...
- 禁止字符串 [POJ3691缩减版]
题意考虑只由'A','G','C','T'四种字符组成的DNA字符串给定一个长度为k的字符串S,计算长度恰好为n的且不包含S的字符串的个数输入结果对10009取膜1<=k<=100,1&l ...
- Linux系统下zookeeper的安装和配置
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...
- web测试点总结---UI、兼容、功能、交互、安全、性能、接口测试
一.概述 1.什么是web? web的本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思.现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体(hypermed ...