第一步:下载mysql驱动

cmd进入创建好的django项目目录:然后使用下面的命令创建一个项目testdj。

 sudo /usr/lib/python3/dist-packages/django/bin/django-admin.py startproject testdj
然后创建一个应用testapp:
sudo /usr/lib/python3/dist-packages/django/bin/django-admin.py startapp testapp

第二步:在settings.py中配置mysql连接参数(没有mysql的先装mysql)

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': '数据库名(你得先在mysql中创建数据库)',
    'USER':'mysql用户名(如root)',
    'PASSWORD':'密码(如123456789)',
    'HOST':'域名(127.0.0.1或localhost)',
    'PORT':'端口号(3306)',
  }
}

第三步:在models.py中创建model类

from django.db import models
# Create your models here. 类似于MVC架构中的Model
class Article(models.Model):
  title = models.CharField(max_length=60,default='title')
  content = models.TextField(null=True)
第四步:根据model类创建数据库表

1、cmd进入django项目路径下

2、Python manage.py migrate #创建表结构,非model类的其他表,django所需要的

3、python manage.py makemigrations app名 #做数据迁移的准备

如:python manage.py makemigrations myblog myblog是我项目中的app名字

4、python manage.py migrate # 执行迁移,创建medel表结构

第五步:开始写代码吧

首先说下需求,就是在代码里向MySQL中插入一条记录并显示到页面

1、在templates下新建一个模板,其实就是页面,如index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<h2> {{article.title}}</h2>
内容:{{ article.content }}
</body>
</html>
使用{{ }}在页面进行数据显示,这里看下就明白

2、配置URL

1、在项目下的urls.py(注意是项目下的urls.py)配置url映射:

from django.conf.urls import url,include
from django.contrib import admin
#根url配置
urlpatterns = [
  #url(页面正则,响应的方法名称)
  url(r'^admin/', admin.site.urls),
  url(r'^myblog/',include('myblog.urls')),
]
这里注意有一个include('myblog.urls')是我们接下来要配置的二级url,在app下的urls.py中配置
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns = [
  #url(页面正则,响应的方法名称) ^index$:表示要以index开始和结束,正则约束
  url(r'^index/$',views.index),
]
现在一个路径为'localhost:8000/myblog/index/'的访问路径就配好了,url(r'^index/$',views.index)就表示最终/myblog/index/这个路径由views.py中的index方法来响应。

3、写响应函数:如像数据中插入一个数据,并显示在页面上

from django.shortcuts import render
from django.http import HttpResponse
from myblog.models import Article
# Create your views here.
def index(request):
  article = Article(title='标题',content='内容!')
  article.save()
  return render(request,'index.html',{'article':article}
第六步:运行项目

我这里使用的pycharm,点击运行按钮即可,没有pycharm的可使用:

python3 manage.py runserver 0.0.0.0:8000
 
来开启服务器,然后咋浏览器输入http://localhost:8000/myblog/index/, 打完收工!

提交表单例子:

newarticle.html in testapp/templates 文件夹

1 <html>
  2         <head>
  3                 <meta charset = "UTF-8">
  4                 <title>新添加一篇文章</title>
  5         </head>
  6         <body>
  7                 <form method="POST">
  8                         {% csrf_token %}
  9                         标题:<input type="text" name="articletitle" value="" /><br/>
 10                         作者:<input type="text" name="author" value="" /><br/>
 11                         文章内容:<textarea name="content" clos="100" rows="10" wrap="true"></textarea><br/>
 12                         <input type="submit" value="提交" />
 13                 </form>
 14         </body>
 15 </html>

testapp/views.py:

1 #__*__ encoding:UTF-8 __*__
  2 from django.shortcuts import render
  3 from django.http import HttpResponse
  4 from testapp.models import Article
  5
  6 # Create your views here.
 12
 13 def newarticle(request):
 14     if request.method == "GET":
 15         return render(request,'newarticle.html')
 16     if request.method == "POST":
 17         print(request)
 18         articletitle = request.POST.get('articletitle')
 19         content = request.POST.get('content')
 20         author = request.POST.get('author')
 21         article = Article(title=articletitle,content=content,author=author)
 22         article.save()
 23         return render(request,'index.html',{'article':article})

urls.py in testapp:

from django.conf.urls import url
  2 from django.contrib import admin
  3 from . import views
  4 urlpatterns = [
  5         url(r'^index/$',views.index),
  6         url(r'^newarticle/$',views.newarticle),
  7         ]

urls.py under testdj/ folder:

from django.conf.urls import url,include

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^testapp/',include('testapp.urls')),

]

settings.py under testdj/ folder:

set ALLOWED_HOSTS  with  '*' for all ipaddresses and hostname, or set it with a special ipddress or hostname

ALLOWED_HOSTS = ['*']

or

ALLOWED_HOSTS = ['www.abyee.com']

For deploy on apache server:

also need to edit the wsgi.py file under project folder:

here is /usr/lib/djangotest/testdj/testdj/wsgi.py

code:

import os
from os.path import dirname,abspath
import sys
from django.core.wsgi import get_wsgi_application
project_dir = dirname(dirname(abspath(__file__)))

sys.path.insert(0,project_dir)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testdj.settings")

application = get_wsgi_application()

原文:https://www.jb51.net/article/118896.htm

Django 的命令及简单例子的更多相关文章

  1. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  2. kubernetes进阶之一:简单例子

    kubernetes 从一个简单例子开始 参考 <kubernetes 权威指南>一节的 从一个简单例子开始,操作实录. 一.Java Web 应用结构 二.启动MySql服务 1.首先为 ...

  3. Linux笔记 #09# Tomcat多开以及Nginx负载均衡简单例子

    索引 Tomcat怎样多开.. 1.添加环境变量(最基础.关键的步骤!) 2.改catalina.sh 3.改相关端口 Nginx负载均衡简单例子 Tomcat怎样多开.. 演示一下如何开两个(开n个 ...

  4. Spark简介安装和简单例子

    Spark简介安装和简单例子 Spark简介 Spark是一种快速.通用.可扩展的大数据分析引擎,目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL.Spark S ...

  5. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  6. Drools简单例子

    转自:http://www.blogjava.net/diggbag/articles/359347.html 1.Drools简单例子 首先是搭建一个可供进行Drools开发的框架.Jboss官方推 ...

  7. Heka 最简单例子

    技术人员学习都是从简单例子开始的, Heka的应用也是从简单开始的.   需求: 监控一个日志文件的内容, 在标准输出显示出来.   操作步骤: 使用下载好或者编译好的 heka 已经编译好的 rel ...

  8. Django学习 之 Django安装与一个简单的实例认识

    一.Django简介 1.MVC与MTV模型 (1)MVC模型 Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的. ...

  9. 7z命令行简单使用

    7z命令行简单使用 网上有很多博客都有记录7z的命令行使用方式,但看起来乱起八糟的,不知所云. 急于使用者可以直接看实例 注:我仅仅记录我认为常用的命令,毕竟没有那么多的精力去学习不常用的东西. 简介 ...

随机推荐

  1. python GUI图形化编程-----wxpython

    一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt     :是python最复杂也是使用最广泛的图形化 Wx       ...

  2. Port Channel and VPC

    1.Port Channel 介绍 Port Channel  简介 绑定多个物理链路(最多8条),到一个单一的逻辑链路,在两个物理设备之间 每个物理端口只能被放入一个port-channel中. 在 ...

  3. vs2017 在win10下安装后开始运行asp.net core 项目时出错

    vs2017 在win10下安装后开始运行asp.net core 项目时出错 报找不到什么 解决方法: 下载 asp.net 2.2 安装好,重新启动电脑问题解决.

  4. ThinkPHP 5 验证码

    <div> <form action="{:url('index/check')}" method="post"> <img sr ...

  5. 字符串只截取小数后n位,不做四舍五入

    例子1: var num = "112233.99887766";console.log(num.substring(0,(num.indexOf(".")+5 ...

  6. jmeter压测mysql报can not be represented as java.sql.Timestame错误解决方法

    JDBC Request  测试mysql时报以下问题? jmeter报错信息: 解决方法: 在数据库url后拼接上字符串?characterEncoding=utf8&zeroDateTim ...

  7. python虚拟环境迁移

    python虚拟环境迁移: 注意事项:直接将虚拟环境复制到另一台机器,直接执行是会有问题的. 那么可以采用以下办法: 思路:将机器1虚拟环境下的包信息打包,之后到机器2上进行安装: (有两种情况要考虑 ...

  8. PHP----------linux下如何安装redis扩展。安装redis可以在我的博客redis里面寻找。

    1.扩展下载地址:wget https://github.com/phpredis/phpredis/archive/develop.zip 2.下载完了以后解压压缩包 解压以后切换到 cd phpr ...

  9. 读C#图解教程的笔记

    第一章记录: 格式化字符串 Console.WriteLine("{0:D}", 123456789);//表示十进制字符串 Console.WriteLine("{0: ...

  10. github爬虫100项目

    为了更好的巩固所学,在github上开始100爬虫项目,记录学习过程,也希望对他人的学习有帮助,目前还在持续更新中,有兴趣可以看看 地址: https://github.com/mapyJJJ/100 ...