2 Django基础

1 django目录文件

1.1 自动生成的文件和文件夹

  • __init__.py:告诉 Python 该目录是一个 Python 包
  • settings.py:Django全局配置文件
  • urls.py:Django路由文件
  • wsgi.py:(Python Web Server Gateway Interface)服务器网关接口
  • templates:放置HTML文件的地方
  • manage.py:启动Django的主要文件

1.2 使用命令新建app

  • 首先执行:Tools > Run manage.py Task
  • 新建app:startapp message

2 django基础

2.1 静态文件及路由系统

2.1.1 样式与HTML代码分离

1 <link rel="stylesheet" href="/static/css/style.css">

2.1.2 setting文件预配置

  • 配置HTML文件路径:‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
 1 TEMPLATES = [
 2     {
 3         ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
 4         ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
 5         ‘APP_DIRS‘: True,
 6         ‘OPTIONS‘: {
 7             ‘context_processors‘: [
 8                 ‘django.template.context_processors.debug‘,
 9                 ‘django.template.context_processors.request‘,
10                 ‘django.contrib.auth.context_processors.auth‘,
11                 ‘django.contrib.messages.context_processors.messages‘,
12             ],
13         },
14     },
15 ]
  • 配置静态文件路径:STATICFILES_DIRS
1 STATIC_URL = ‘/static/‘
2 STATICFILES_DIRS = [
3     os.path.join(BASE_DIR, ‘static‘),
4 ]

2.1.3 路由配置

1 html准备

整备一个html文件,暂命名:msg_index.html

2 在views中编写函数,返回msg_index.html

1 def getIndex(request):
2     #return msg_index.html  page
3     return render(request, ‘msg_index.html‘)

3 urls文件中进行路由配置

1 urlpatterns = [
2     url(r‘^admin/‘, admin.site.urls),
3     url(r‘^index/‘, getIndex),
4 ]

2.2 数据库操作

2.2.1 数据库配置

1 DATABASES = {
2     ‘default‘: {
3         ‘ENGINE‘: ‘django.db.backends.mysql‘,
4         ‘NAME‘: ‘test1‘,
5         ‘USER‘: ‘root‘,
6         ‘PASSWORD‘: ‘111111‘,
7         ‘HOST‘:‘127.0.0.1‘
8     }
9 }

2.2.2 安装mysql驱动

点击Tools > Run manage.py 提示:Task  No module named MySQLdb,表示我们没有安装mysql驱动

  • 下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • 下载文件:MySQL_python-1.2.5-cp27-none-win_amd64.whl
  • 离线安装,安装后重新运行 Tools > Run manage.py ,错误提示消失

2.2.3 生成数据库表

  • 先执行migrations命令:在app下建立 migrations目录,并记录下你所有的关于modes.py的改动
  • 再执行migrate命令:这时候才真的把作用到数据库文件,产生对应的表

2.3 app数据库操作

2.3.1 注册app

  • 在setting文件中注册message app
1 INSTALLED_APPS = [
2     ‘django.contrib.admin‘,
3     ‘django.contrib.auth‘,
4     ‘django.contrib.contenttypes‘,
5     ‘django.contrib.sessions‘,
6     ‘django.contrib.messages‘,
7     ‘django.contrib.staticfiles‘,
8     ‘message‘,
9 ]

2.3.2 新建models类

 1 from django.db import models
 2
 3 class UserMessage(models.Model):
 4     name = models.CharField(max_lenth=20, verbose_name=u‘用户名‘)
 5     email = models.EmailField(verbose_name=u‘邮箱‘)
 6     address = models.CharField(max_length=200, verbose_name=u‘地址‘)
 7     message = models.CharField(max_length=500, verbose_name=u‘留言‘)
 8
 9     class Meta:
10         verbose_name = u‘用户留言信息‘

2.3.3 django数据类型

 1 __all__ = [str(x) for x in (
 2     ‘AutoField‘, ‘BLANK_CHOICE_DASH‘, ‘BigIntegerField‘, ‘BinaryField‘,
 3     ‘BooleanField‘, ‘CharField‘, ‘CommaSeparatedIntegerField‘, ‘DateField‘,
 4     ‘DateTimeField‘, ‘DecimalField‘, ‘DurationField‘, ‘EmailField‘, ‘Empty‘,
 5     ‘Field‘, ‘FieldDoesNotExist‘, ‘FilePathField‘, ‘FloatField‘,
 6     ‘GenericIPAddressField‘, ‘IPAddressField‘, ‘IntegerField‘, ‘NOT_PROVIDED‘,
 7     ‘NullBooleanField‘, ‘PositiveIntegerField‘, ‘PositiveSmallIntegerField‘,
 8     ‘SlugField‘, ‘SmallIntegerField‘, ‘TextField‘, ‘TimeField‘, ‘URLField‘,
 9     ‘UUIDField‘,
10 )]

2.3.4 生成app的数据库表

  • makemigrations message
  • migrate message

    >    

  • 自动主键:类中没有指定主键,django会自动新建id字段作为主键
  • 手动主键:msg_id = models.CharField(max_length=100, default=‘‘, primary_key=True, verbose_name=u‘编号‘)

2.3.4 使用数据库

1 新增

  • 设置表单的action:<form action="/index/" method="post">
  • 设置表单的csrf:{% csrf_token %}  </form>
  • 确定表单中控件有name属性:name属性在后台views中使用
 1 def getIndex(request):
 2     #insert
 3     if request.method == ‘POST‘:
 4         #获取请求值
 5         name = request.POST.get(‘name‘, ‘‘) #需要与form中的控件名相同
 6         email = request.POST.get(‘email‘, ‘‘)
 7         address = request.POST.get(‘address‘, ‘‘)
 8         message = request.POST.get(‘message‘, ‘‘)
 9         name = request.POST.get(‘name‘, ‘‘)
10         #插入数据库
11         user_msg = UserMessage2()
12         user_msg.msg_id = 5
13         user_msg.name = name
14         user_msg.email = email
15         user_msg.message = message
16         user_msg.address = address
17         user_msg.save()
18     return render(request, ‘msg_index.html‘)

2 查询

1 def getMSG(request):
2     # select all
3     all_msg = UserMessage2.objects.all()
4     for msg in all_msg:
5         print msg.name
6     #select filter
7     filte_msg = UserMessage2.objects.filter(name=‘张‘, address=‘北京‘)
8     for flt in filte_msg:
9         print flt

3 删除

1 def delMSG(request):
2     # delete
3     all_msg = UserMessage2.objects.filter(name=‘张‘, address=‘北京‘)
4     all_msg.delete()    #删除所有
5     for msg in all_msg:
6         msg.delete()    #删除某个
7         print msg.name

2.3.5 数据回显

1 views查询数据

1 def getMSG(request):
2     # 数据库取值
3     msg = None
4     all_msg = UserMessage2.objects.filter(name=‘张‘)
5     if all_msg:
6         msg = all_msg[0]
7     return render(request, ‘msg_index.html‘, {‘msg_data‘:msg,})  #回显使用数据

2 html页面回显

<input id="email" type="email" value="{{ msg_data.email }}" name="email" placeholder="请输入邮箱?"/>

3 url别名

  • urls文件中设置别名:url(r‘^index/$‘, getMSG, name=‘user_msg‘)
  • html文件中使用别名:<form action="{% url ‘user_msg‘ %}" method="post" class="smart-green">
时间: 2024-08-26 23:21:19

2 Django基础的相关文章

Python Day19-20(Django基础)

一.Django基础 1.基本配置补充 可以用pycharm一键创建工程和APP 其他常用命令: python manage.py runserver 1.1.1.1:8000 python manage.py startapp appname python manage.py syncdb python manage.py makemigrations python manage.py migrate python manage.py createsuperuser 数据库配置 setting

Django 基础教程

Django 基础教程 这是第一篇 Django 简介 ?  Django 是由 Python 开发的一个免费的开源网站框架,可以用于快速搭建高性能,优雅的网站! 你一定可以学会,Django 很简单!本教程一直在更新,从开始写到现在大概写了一年多了,现在也一直在坚持写,每一篇教程都可能随时更新,可以在网站首页看到最近更新的情况. 我阅读学习了全部的 Django英文的官方文档,觉得国内比较好的Django学习资源不多,所以决定写自己的教程.本教程开始写的时候是 Django 的版本是 1.6,

Python之路-(js正则表达式、前端页面的模板套用、Django基础)

js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m 表示多行匹配 登录注册验证: test: 判断字符串是否符合规定的规则 rep = /\d+/;   (定义规则) rep.test('')   (引号里面必须包含字母和数字才返回true,否则为false) rep = /^\d+$/; (只有是纯数字时候才返回true,否则是false) exe

Django[基础知识]

Python功能最全的WEB框架:Django,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 使用Django需进行以下操作: 1.创建Django项目,创建方式有两种. a.命令操作: django-admin startproject  dg_web   //dg_web为项目名称 b.直接在开发环境IDE下进行新建django项目 创建项目之后的文件目录如下: 2.在创建的项目下建立功能程序,操作如下: 命令行:python manage.py startap

Django基础和基本使用

Django基础 Django是Python下的一款著名的Web框架 框架 任何语言进入到高级部分时,会有认证.session.http.连接数据库等等功能操作,没有框架时需要自己实现 框架 是整个或部分系统的可重用设计,表现为一组抽象组件及组件实例间交互的方法: Django优点 自带轮子众多,方便快速开发 如Auth,Cache,模板等 天生的MVC设计模块 实用的后台管理 自带ORM,Template,Form,Auth核心组件 简洁的url设计 周边插件丰富 Django缺点 重 同步阻

Python学习之旅—Django基础

前言  前段时间业务比较繁忙,没时间更新博客,从这周开始将继续为各位更新博客.本次分享的主题是Django的基础部分,涵盖Django MTV三部分,并通过一个简单的班级管理系统来说明如何使用Django进行开发,好啦,开始今天的主题吧! 一.浅谈MVC.MTV和MVVM 要学习Django,我们很有必要了解下MVC,MTV和MVVM三种模式. [001]MVC MVC(Model View Controller 模型-视图-控制器)是一种Web架构的模式(本文不讨论桌面应用的MVC),它把业务

Django基础之MTV模型

一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Controller).它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件.并于2005年7月在BSD许可证下发布.这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的. 1.mvc简介 http://blog.csdn.net/pi9n

Web框架和Django基础

核心知识点 1.web应用类似于一个socket客户端,用来接收请求 2.HTTP:规定了客户端和服务器之间的通信格式. 3.一个HTTP包含两部分,header和body,body是可选,\r\n分隔头部,\r\n\r\n分隔头部和身体. 4.WSGI:定义了用python编写的web服务程序和web应用程序的接口格式. 5.python标准库提供的独立的协议叫wsgiref,django也是使用它作为环境. 6.Django的目录结构(基本的:settings.py urls.py wsgi

Django基础01

我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. import socket sk = socket.socket() sk.bind(("127.0.0.1", 80)) sk.listen(5) while True: conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.clo