Django初认识

来源:互联网 发布:极简生活后的变化知乎 编辑:程序博客网 时间:2024/05/19 13:14

工作中用到的web框架是web.py,虽然本人认为是个非常好的框架,可惜知名度不高(作者英年早逝啊),python圈里知名度最高的框架是Django,作为python web开发人员还是要瞻仰一下的。

#安装命令pip install Django#检查是否安装成功#输入以下命令进行检查:>>> import django>>> django.get_version()
#国际惯例安装好后来个hello world项目#真是神奇 会自动新建个完整的目录django-admin.py startproject HelloWorld

视图和 URL 配置

#在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:#HelloWorld/HelloWorld/view.py 文件代码:from django.http import HttpResponsedef hello(request):    return HttpResponse("Hello world ! ")

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,写代码

from django.conf.urls import urlfrom . import viewurlpatterns = [    url(r'^$', view.hello),    #或者 url(r'^hello$', view.hello),]

目录如下

$ tree.|-- HelloWorld|   |-- __init__.py|   |-- __init__.pyc|   |-- settings.py|   |-- settings.pyc|   |-- urls.py              # url 配置|   |-- urls.pyc|   |-- view.py              # 添加的视图文件|   |-- view.pyc             # 编译后的视图文件|   |-- wsgi.py|   `-- wsgi.pyc`-- manage.py
#启动命令python manage.py runserver 端口

Django 模板
为了符合MVC,需要Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。
在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件

HelloWorld/|-- HelloWorld|   |-- __init__.py|   |-- __init__.pyc|   |-- settings.py|   |-- settings.pyc|   |-- urls.py|   |-- urls.pyc|   |-- view.py|   |-- view.pyc|   |-- wsgi.py|   `-- wsgi.pyc|-- manage.py`-- templates    `-- hello.html ``` ``` #HelloWorld/templates/hello.html 文件代码:    <h1>{{ hello }}</h1>#接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 #DIRS 为 [BASE_DIR+"/templates",],如下所示:#HelloWorld/HelloWorld/settings.py 文件代码:TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [BASE_DIR+"/templates",],       # 修改位置        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',            ],        },    },]#修改 view.py,增加一个新的对象,用于向模板提交数据:#HelloWorld/HelloWorld/view.py 文件代码:# -*- coding: utf-8 -*-#from django.http import HttpResponsefrom django.shortcuts import renderdef hello(request):    context = {}    context['hello'] = 'Hello World!'    return render(request, 'hello.html', context)

模板继承

//模板可以用继承的方式来实现复用。//接下来我们先创建之前项目的 templates 目录中添加 base.html 文件,代码如下://HelloWorld/templates/base.html 文件代码:<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body>    <h1>Hello World!</h1>    <p>菜鸟教程 Django 测试。</p>    {% block mainbody %}       <p>original</p>    {% endblock %}</body></html> #以上代码中,名为 mainbody 的 block 标签是可以被继承者们替换掉的部分。 #所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。 #hello.html 中继承 base.html,并替换特定 block,hello.html 修改后的代码如下: #HelloWorld/templates/hello.html 文件代码:{% extends "base.html" %}{% block mainbody %}<p>继承了 base.html 文件</p>{% endblock %}

Django 模型

Django默认是SQLite的,现在改为mysql
先安装驱动 pip install mysqlclient
数据库配置

#我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:#HelloWorld/HelloWorld/settings.py: 文件代码:DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django        'NAME': 'test',        'USER': 'test',        'PASSWORD': 'test123',        'HOST':'localhost',        'PORT':'3306',    }}

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:
django-admin.py startapp TestModel

HelloWorld|-- TestModel|   |-- __init__.py|   |-- admin.py|   |-- models.py|   |-- tests.py|   `-- views.py# HelloWorld/TestModel/models.py: 文件代码:# models.pyfrom django.db import modelsclass Test(models.Model):    name = models.CharField(max_length=20)#接下来在settings.py中找到INSTALLED_APPS这一项,如下:INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'TestModel',               # 添加此项)#在命令行中运行:python manage.py migrate   # 创建表结构
原创粉丝点击