Django:web框架的学习(2)

001:Django:web框架的学习


核心知识: 1:第一个视图和URL配置 2:Django模型:数据库的配置及shell操作 3:Django后台初看 4:编程感悟


1:视图和URL

  • Django开发大致流程
    • 配置urls
    • 视图views
    • 模型models
    • 模板templates
  • 创建项目和一个应用: 目录下:django-admin startproject learn 目录下:python manage.py startapp one
  • setting.py 注册应用 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'one' ]
  • 再次明确下目录下文件的用途

|文件名|用途| |---| |urls.py|网址入口,关联到对应的views.py 一个函数| |views.py|网页显示的内容,用户访问网页能看到的界面内容| |models.py|数据库操作,定义数据表等| |settings.py|Django设置文件,时区,数据库,语言,app注册等设置| | |...|...|

  • 编写视图文件:目录one\views.py from django.shortcuts import render from django.http import HttpResponse # Create your views here. def hello(request): return HttpResponse("Hello world.") # 需要导入HttpResponse类 # 函数需要至少需要带参数:request
  • 配置url:目录:learn\urls.py from django.conf.urls import url from django.contrib import admin from one.views import hello # 导入视图文件那个hello 函数 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^first, hello), ] # 配置url后的意思是:访问http://127.0.0.1:8000/first 网址,显示的是视图文件hello函数返回的内容 # url配置会使用到正则表达式
  • 启动服务器: 目录下:python manage.py runserver # 访问网页 http://127.0.0.1:8000/hello 显示hello world
  • 回顾下主要参照流程
    • Django创建项目: django-admin startproject learn
    • django 启动一个app应用: python manage.py startapp one
    • 设置文件注册:app
    • 编写视图文件: views.py
    • 配置url文件: urls.py
    • 执行启动服务器命令: python manage.py runserver
  • 访问网页链接的发生的过程步骤
    • 请求转入:http://127.0.0.1:8000/first
    • Django 通过ROOT_URLCONF配置来决定根URLconf
    • URL模式匹配中匹配first
    • 调用想应的视图文件
    • 视图文件返回一个HttpResponse
    • webpage 展示:Hello world.

2:Django模型

模型models.py 文件主要和数据库相关

Django 支持4种数据库:

  • PostgreSQL
  • SQLite
  • MySQL
  • Oracle

以:MySQL为例

  • settings.py 配置数据库信息
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': 123456,
        'HOST': 'localhost',
        'PORT': 3306
    }
}
# ENGINE: mysql 指定是mysql数据库
# NAME: 数据库名字
# 用户,密码,主机地址,端口号
  • models.py 文件的编写:目录:one\models.py 一个表即是一个类:下面创建一个只有一列的数据表:表名为:Character
from django.db import models

# Create your models here.
class Character(models.Model):
    name = models.CharField(max_length=200)
    def __unicode__(self):
        return self.name
# 字段名为:name, 最大长度为200,字符串类型
  • 在数据库中为模型生成表结构 python manage.py makemigrations [APPNAME] python manage.py migrate [APPNAME] # 数据库:test 中生成:APPNAME_character 的表,包含字段为:name, 自动添加字段id
  • Django shell 交互式shell对数据库进行操作: python manage.py shell # 我们创建的APPNAME 为one, 数据表定义的类为:Character, 定义的字段为: name >>> from one.models import Character >>> # 向数据表中增加一条数据 >>> Character.objects.create(name ="xiexiaolu" ) # s数据库增加一条name="xiexiaolu"的数据 >>> first = Character.objects.get(name = "xiexiaolu") >>> # 查看字段属性值 >>> first.id >>> first.name >>> first.delete() # 详情还是参考官方文档吧
  • 官方文档:点这里

3:Django后台

1464618949846.png

可以对定义的数据库表进行操作等

  • 默认显示英文:更改显示中文 setting.py 文件下 将语言显示改为 LANGUAGE_CODE = 'zh-cn'

4:编程感悟

借我杀死庸碌的情怀

其实和官方文档的结构很像,并没有太多的关于深层次的框架感悟。

需要持续精进。

实现最小化可行系统是实现和理解编程原理的第一步。


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逆向技术

32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式

    32位汇编第三讲,RadAsm,IDE的配置和使用,以及汇编代码注入方式 一丶RadAsm的配置和使用 用了怎么长时间的命令行方式,我们发现了几个问题 ...

5615
来自专栏乐百川的学习频道

django 快速入门

Django是Python语言编写的一个全栈式Web框架,可以帮助我们快速编写一个具有数据库功能、增删查改、后台管理等功能的网站。假如你只需要一些很简单的功能,...

2836
来自专栏小二的折腾日记

面试总结-链接

https://blog.csdn.net/CCUTwangning/article/details/70153589 天下无难试之Redis面试题刁难大全 h...

761
来自专栏张善友的专栏

Mongo Database 性能优化

SQL Server有工具进行数据库的优化,Mongo Database Profiler.不仅有,而且功能更强大。 MongoDB 自带 Profiler,可...

36610
来自专栏云计算教程系列

如何在Ubuntu 16.04上的三节点集群上部署CockroachDB

CockroachDB是一个开源的分布式SQL数据库,提供一致性、可伸缩性和生存性。

1892
来自专栏FreeBuf

代码审计 | HDWiki v6.0最新版referer注入漏洞

近期在审计HDWiki 6.0最新版cms的时候发现由referer导致的sql注入问题。SQL注入我们知道是由于代码与数据没有严格区别限制分离而导致的问题,O...

1782
来自专栏移动开发面面观

POSIX文件操作(二)

2315
来自专栏Java编程技术

MySQL 中基于 XA 实现的分布式事务

Xa主要规定了RM与TM之间的交互,下面来看下XA规范中定义的RM 和 TM交互的接口:

1313
来自专栏Charlie's Road

Python文件读写保存操作

上面的代码其实没啥要介绍的,就是一个for循环然后逻辑和单个文件读操作一样,只是多了个写操作。

3881
来自专栏乐沙弥的世界

使用mysqlbinlog提取二进制日志

    MySQL binlog日志记录了MySQL数据库从启用日志以来所有对当前数据库的变更。binlog日志属于二进制文件,我们可以从binlog提取出来生...

2122

扫码关注云+社区

领取腾讯云代金券