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 # 创建表结构
阅读全文
0 0
- Django初认识
- Django-1初认识
- Django初认识
- 认识Django
- python - django - 初步认识
- Django - 认识姜戈 与 Python 管理工具
- Django学习:基本认识(1)
- 第八章:Django开发中表单认识
- atl初认识
- xslt 初认识
- O_DIRECT初认识
- GPT初认识
- C++初认识感想
- 【认识之初】
- 初认识json
- findbugs初认识
- 产品设计之初认识
- PHP 初认识
- PAT 1067. 试密码(20)
- 使用=React.PropTypes进行类型检测
- git报错:data stream error (incorrect data check)和 The remote end hung up unexpectedly
- java注解
- 快速排序——栈和数组——两种思路(递归+挖坑填埋法)
- Django初认识
- make与makefile的编写
- 磁盘IO原理
- python爬虫爬取豆瓣top250电影影评
- spring boot笔记
- js、匿名函数、闭包、回调函数
- Safe-Home页面(1)
- QML控件学习——之仪表盘控件Dial和DialStyle(自定义仪表盘)
- LeetCode 42. Trapping Rain Water 题解