一、

(1)使用idea生成一个python项目,安装Django框架:

  1. pip install django==1.8.2

(2)初始化项目:

  1. django-admin startproject xxx //xxx为项目名称

(3)初始化应用:

  1. python manage.py startapp xxx //xxx为应用名称

(4)在settings.py中注册刚生成的应用:

  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. 'home', //这是我们刚生成的应用
  9. )

(5)测试项目是否可以正常启动:

  1. python manage.py runserver IP:端口

浏览器访问如下:

PS:Django默认使用的是sqlite3数据库,可以根据model生成数据库表,生成的文件在migrations目录下:

(1)我们先在model中写一个测试类:

  1. from django.db import models
  2. # Create your models here.
  3. #学生类
  4. class StuUser(models.Model):
  5. '''学生模型类'''
  6. #照片
  7. studentName = models.CharField(max_length=255)
  8. studentNumber = models.CharField(max_length=255)
  9. picture = models.CharField(max_length=255)
  10. phoneNumber = models.CharField(max_length=255)
  11. address = models.CharField(max_length=255)
  12. createDate = models.DateTimeField()
  13. updateDate = models.DateTimeField()

(2)终端运行如下指令:

  1. python manage.py makemigrations

运行后可以发现migrations目录下多了一个0001_initial.py文件,就是我们model的迁移文件:

  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3.  
  4. from django.db import models, migrations
  5.  
  6. class Migration(migrations.Migration):
  7.  
  8. dependencies = [
  9. ]
  10.  
  11. operations = [
  12. migrations.CreateModel(
  13. name='StuUser',
  14. fields=[
  15. ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)),
  16. ('studentName', models.CharField(max_length=255)),
  17. ('studentNumber', models.CharField(max_length=255)),
  18. ('picture', models.CharField(max_length=255)),
  19. ('phoneNumber', models.CharField(max_length=255)),
  20. ('address', models.CharField(max_length=255)),
  21. ('createDate', models.DateTimeField()),
  22. ('updateDate', models.DateTimeField()),
  23. ],
  24. ),
  25. ]

然后再运行如下指令:

  1. python manage.py migrate

此时就会生成一个db.sqlite3文件,这是一个小型数据库,我们需要安装一个工具才能有可视化数据库界面,由于项目使用的是mysql数据库,后续需要更改对应数据库配置,此处不过多赘述

二、django整合mysql

(1)django完成视图搭建:(注意项目结构,我使用的idea生成的项目,需要删除一层,使项目结构如下:)

 其中homework为项目,home是我们运行如下指令初始化的应用:(一定要注意)

  1. python manage.py startapp home

首先,我们在settings.py配置文件的TEMPLATES->DIRS中添加如下代码:(指定模板路径)

  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. ]

应用中新建对应路径的文件夹做为我们的view模板渲染层,进行前后端分离的项目就不需要这些操作了

home应用中的urls.py配置路由(默认生成的home应用没有urls.py,从项目homework中复制一份):

  1. from django.conf.urls import url
    from home import views
    urlpatterns = [
    url(r'^index$',views.index),#首页
    ]

home应用中的views.py文件中配置视图:

  1. from django.shortcuts import render
  2.  
  3. # Create your views here.
  4. def index(request):
  5. '''首页'''
  6. return render(request,'home/index.html')

项目的urls.py中引入应用的路由:

  1. urlpatterns = [
  2. url(r'^admin/', include(admin.site.urls)),
  3. url(r'^', include('home.urls')),
  4. ]

模板中新建index.html

index.html内容:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>首页</title>
  6. </head>
  7. <body>
  8. <h1>首页</h1>
  9. </body>
  10. </html>

然后运行

  1. manage.py runserver 127.0.0.1:8080

这样一个路由就配置好了

PS:简单介绍以下Django路由的原理,如下图所示:()

自定义404页面:

settings.py修改如下配置:

  1. DEBUG = False
  2.  
  3. ALLOWED_HOSTS = ['127.0.0.1']

templates下新建404.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>首页</title>
  6. </head>
  7. <body>
  8. <h1>页面找不到</h1>
  9. </body>
  10. </html>

(2)配置mysql数据库(settings.py文件中修改数据库配置):

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'stu_user',//数据库名称
  5. 'USER': 'root',
  6. 'PASSWORD': 'root',
  7. 'HOST': 'localhost',
  8. 'PORT': '3306',
  9. }
  10. }

views.py中测试新增数据:

  1. from django.shortcuts import render
  2. from datetime import date
  3. from home import models
  4. # Create your views here.
  5. def index(request):
  6. '''首页'''
  7. book = models.StuUser(
  8. studentName = '冯文哲'
  9. )
  10. book.save()
  11. return render(request,'home/index.html')

python使用Django框架开发简单项目的更多相关文章

  1. Python的Django框架中的Cookie相关处理

    Python的Django框架中的Cookie相关处理 浏览器的开发人员在非常早的时候就已经意识到. HTTP's 的无状态会对Web开发人员带来非常大的问题,于是(cookies)应运而生. coo ...

  2. Django框架的安装,项目创建

    目录 Django框架的安装,项目创建 方法安装 Django版本选择 1.11.21(最新LTS版) django管理目录 命令行创建项目 django项目 命令行启动 (必须在项目文件下执行) p ...

  3. SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射

    前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...

  4. SSM框架开发web项目系列(五) Spring集成MyBatis

    前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑 ...

  5. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  6. 如何使用Python的Django框架创建自己的网站

    如何使用Python的Django框架创建自己的网站 Django建站主要分四步:1.创建Django项目,2.将网页模板移植到Django项目中,3.数据交互,4.数据库 1创建Django项目 本 ...

  7. YII框架开发一个项目的通用目录结构

    YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...

  8. SSM框架开发web项目系列(二) MyBatis真正的力量

    前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBa ...

  9. Python的Django框架中的Context使用

    Python的Django框架中的Context使用 近期整理些Python方面的知识,一旦你创建一个 Template 对象,你能够用 context 来传递数据给它. 一个context是一系列变 ...

随机推荐

  1. uniapp 设置背景图片

    uniapp 由于其特殊机制,导致了背景图片不能引用本地图片.只能通过 转成 base64 来进行设置 附上链接:https://oktools.net/image2base64 图片转成base64 ...

  2. Git 系列教程(6)- 查看 commit 提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,如何查看提交历史 git log 官方栗子 运行下面的命令获取该项目: git clone https://github.com/scha 运 ...

  3. Git - Mac 电脑使用 brew 更新 Git

    安装 Homebrew Homebrew 是一个软件包管理器.它的作用就是将软件包安装到自己的目录中,然后将其文件符号链接到 /usr/local.更多信息,请自行进入官网查看 https://bre ...

  4. 算法:实现strStr(),字符串indexOf方法

    描述 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返回  -1. 个人思路: ...

  5. 详解Java中==和equals()的区别

    众所周知,在 Java 编程中,程序员通常会使用==或equals()来简单的比较地址,内容是否相等.而这两者之间的使用区别,对于初学 Java 的同学来说可能会比较迷糊.我将根据下面的几段示例程序, ...

  6. P1118 [USACO06FEB]Backward Digit Sums G/S

    P1118 [USACO06FEB]Backward Digit Sums G/S 题解:  (1)暴力法.对1-N这N个数做从小到大的全排列,对每个全排列进行三角形的计算,判断是否等于N.  对每个 ...

  7. 还不知道PHP有闭包?那你真OUT了

    做过一段时间的Web开发,我们都知道或者了解JavaScript中有个非常强大的语法,那就是闭包.其实,在PHP中也早就有了闭包函数的功能.早在5.3版本的PHP中,闭包函数就已经出现了.到了7以及后 ...

  8. Deprecated: __autoload() is deprecated, use spl_autoload_register()

    Deprecated: __autoload() is deprecated, use spl_autoload_register() 解决:可能原因PHP版本过高,亲测discuz3.4版本使用ph ...

  9. typora+picgo+gitee 图片无法加载问题

    typora+picgo+gitee 图片无法加载问题 待解决

  10. VMware安装最新版CentOS7图文教程

    https://blog.csdn.net/reticent_man/article/details/80732395 https://blog.csdn.net/q2158798/article/d ...