Django(基本流程)

创建项目:
1,在合适的目录创建一个目录
2,打开黑屏终端进入到上一步创建的目录下
3,输入(django-admin startproject project)
4,目录层级说明:manage.py-->一个命令工具,可以使用我们用多种方式对Django项目进行交互
project目录:init.py-->一个空文件,它告诉python这个目录应该被看做一个python包
settings.py-->项目的配置文件
urls.py-->项目url声明
wsgi.py-->项目与WSGI兼容的Web服务器入口

配置数据库

创建应用:在一个项目中可以创建多个应用,每个应用进行一种业务处理
打开黑屏终端进入(eg:进入Django刚刚创建的目录下的project目录下)
在终端执行python manage.py startapp maApp(应用名字)

     创建好myApp目录说明:admin.py-->站点配置
                         models.py-->模型
                         views.py-->视图

创建应用:在settings.py文件中,将myApp应用加入到NSTALLED_APPS选项中

定义模型:有一个数据表,就对应有一个模型
在models.py文件中定义模型-->引入from django.bd import models
模型要继承models.Model类

数据库配置
在settings.py文件中,通过DATABASES项进行数据库设置
django支持的数据库包括:sqlite、mysql等主流数据库
Django默认使用SQLite数据库

eg:
DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'Xvhongye',(数据库名称)
    'USER':'root',(用户名)
    'PASSWORD':'xvhongye123',(密码)
    'HOST':'localhost',(ip)
    'PORT':'3306',(端口号)
}

}

在project中的__init__.py中引入:
        import pymysql
        pymysql.install_as_MySQLdb()

数据表:生成迁移文件-->在cmd中执行python manage.py makemigrations :在migrations目录下生成一个迁移文件,此时在数据库中还没有生成数据表
执行迁移文件-->python manage.py migrate(会在数据库生成对应的表 )

测试数据操作:进入到python shell -->执行python manage.py shell
引入包--> from myApp.models import Grades,Students
from django.utils import timezone
from datetime import *
查询所有数据-->类名.objects.all()
添加数据-->本质:创建一个模型类的对象实例
grade1 =Grades()
grade1.gname="xvhongye"
grade1.gdate =datetime(year=2018,month=12,day=20)
grade1.ggirlnum=3
grade1.gboynum =70
#存入数据库
grade1.save()
查看某个对象:类名.objects.get(pk=ID数)

        修改数据-->模型对象.属性=新值
                  grade2.gboynum =66
                  grade2.save()
        删除数据-->模型对象.delete()
                  grade2.delete()
                  注意:物理删除,数据库的表里的数据被删除了

      关联对象--> stu =Students()
                 stu.sname='琦琦'
                 stu.sgender =False
                 stu.sage =21
                 stu.scontend ="我是琦琦"
                 grade1 =Grades.objects.get(pk=1)
                 stu.sgrade =grade1
                 获取关联对象的集合-->需求:获取xvhongye班级的所有学生
                                          对象名.关联的类名小写_set.all()

                                    需求:创建黄芷琦,属于英语一班班级
                                          stu3 =grade1.students_set.create(sname=u"黄芷琦",sgender=True,scontend=u"我叫黄芷琦",sage=21)

启动服务器:格式-->python manage.py runserver ip:port

说明:这是一个python写的web服务器,轻量级的,仅在测试的时候使用

Admin站点管理:内容发布-->负责添加,修改,删除内容
公告访问
配置Admin应用:在settings.py文件中的INSTALLED_APPS添加
'django.contrib.admin'

创建管理员用户
python manage.py createsuperuser
依次输入用户名,邮箱,密码
登录的话:在local:8000\admin
汉化:修改settings.py文件中的 LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

管理数据表:修改admin.py中添加 from .models import Grades,Students
注册
admin.site.register(Grades)
admin.site.register(Students)

自定义管理页面:属性说明 --> 列表页属性:list_display(显示字段)
                                      list_filter(过滤字段)
                                      search_fields(搜索字段)
                                      list_per_page(分页,多少条数据显示一页)

                            添加,修改页属性:fields(属性的先后顺序)
                                           fieldsets(给属性分组)
                                           注意(fields与fieldsets不能同时使用)

视图的基本使用:概述:在django中,视图对web请求进行回应
视图就是一个python函数,在view.py文件中定义

               定义视图:from django.http import HttpResponse
                        def index(request):
                            return HttpResponse('xvhongye is good man!')

                配置url:修改project目录下的urls.py文件
                        from django.conf.urls import url,include
                        from django.contrib import admin
                        urlpatterns = [
                            url(r'^admin/', admin.site.urls),
                            url(r'^',include('myApp.urls')),
                        ]

                        在myApp应用目录下创建一个urls.py文件
                        from django.conf.urls import url
                        from . import views
                        urlpatterns =[
                         url(r'^$',views.index)
                        ]

模板的基本使用:概述:模板是HTML页面,可以根据视图中传递过来的数据进行填充

              创建模板:创建templates目录,在目录下创建对应项目的模板目录(project/templates/myApp)

              配置模板路径:修改settings.py文件下的TEMPLATES
                                'DIRS': [os.path.join(BASE_DIR,'templates')]

              定义grades.html和students.html页面
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容

  • 一、Django简介 Django是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网...
    仙灵儿阅读 3,471评论 0 5
  • 切换到创建项目的目录 cd C:\Users\admin\Desktop\DjangoProject创建名为pr...
    在努力中阅读 3,275评论 2 3
  • 一、Django简介 Django是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网...
    王梓懿_1fbc阅读 335评论 0 0
  • 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚...
    riverstation阅读 2,074评论 0 8
  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 5,660评论 0 17