需要的环境......(略)

使用pycharm社区版搭建项目(专业版有更强大功能):

  1. 打开terminal 执行命令: django-admin startproject first_project  如下图:

python+django搭建web项目

在Django_server目录下会创建一个first_project项目;

  1. 连接mysql数据库:

如果未安装mysqlclient驱动程序,需要执行命令:pip3 install mysqlclient;如遇报错(红一片的那种),需要先在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient下载对应python版本的mysqlclient(我的是3.5版本)

python+django搭建web项目

 

  • 下载完成后,在该文件所在目录打开命令行执行窗口,执行命令:
  • pip3 install mysqlclient‑1.4.4‑cp35‑cp35m‑win_amd64.whl  (根据版本而定)

成功以后对,配置数据库连接,打开settings.py文件编写代码:

DATABASES = {
   
'default': {
       
'ENGINE': 'django.db.backends.mysql',
       
'NAME': '数据库名称',
       
'USER': '数据库用户名',
       
'PASSWORD': '密码',
       
'HOST': 'localhost',
       
'PORT': '3306',
   
}
}

执行命令:python manage.py shell   如图:

python+django搭建web项目

 

测试数据库配置是否成功:

>>> from django.db import connection

>>> cursor = connection.cursor()

如果没有报错,则配置成功。

  1. 创建app

首先切换到项目路径下:cd  first_project

执行命令:python  manage.py  startapp  student

会在项目下创建一个student目录。

  1. 创建模板文件的目录:

在项目根目录下新建一个templates目录

python+django搭建web项目

 

  1. 启动:python manage.py runserver   (默认端口号8000)

python+django搭建web项目

 

启动成功!

在浏览器访问:127.0.0.1:8000 显示:

python+django搭建web项目

 

  1. 添加web工程页面

打开first_project/views.py输入:

from django.http import HttpResponse

import datetime





def hello(request):

    date = datetime.datetime.now()  # 获取当前时间

    html = '<h2>Hello World!现在时间是:{}</h2>'.format(date)

    return HttpResponse(html)
  1. url映射配置:

打开first_project/urls.py输入:

from django.conf.urls import url

from django.contrib import admin

from first_project import views



urlpatterns = [

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

    url(r'^hello/$', views.hello),

]

在浏览器访问:127.0.0.1:8000/hello

python+django搭建web项目

 

成功!

  1. 逻辑和页面分离

在新建的templates目录下创建一个student.html文件编写如下代码:

<!DOCTYPE html>
<html
lang="en">
<head>
    <meta
charset="UTF-8">
    <title>
hello</title>
</head>
<body>
<ul>
   
{% for student in students %}
   
<li>
       
id:{{student.id}},姓名:{{student.name}},age:{{student.age}}
   
</li>
   
{% endfor %}
</ul>
</body>
</html>

在Student/views.py 文件下编辑代码:

from django.shortcuts import render, render_to_response


# Create your views here.
def showStudents(request):
    list = [{
'id': 1, 'name': 'Jack'}, {'id': 2, 'name': 'Rose'}]
   
return render_to_response('student.html', {'students': list})

添加url映射:

from django.conf.urls import url
from django.contrib import admin
from first_project import views
from student import views as student_views

urlpatterns = [
    url(
'admin/', admin.site.urls),
   
url(r'^hello/$', views.hello),
   
url(r'^showStudents/$', student_views.showStudents),
]

修改firstproject目录下的setting.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',
           
],
        
},
   
},
]

此时,访问127.0.0.1:8000/showStudents显示出如下信息:

python+django搭建web项目

 

  1. 创建模型

打开student目录下的models.py编写代码:

from django.db import models


# Create your models here.
class Student(models.Model):
    name = models.CharField(
max_length=20)

**模型:

打开setting.py找到 INSTALLED_APPS 设置:

INSTALLED_APPS = [
   
'django.contrib.admin',
   
'django.contrib.auth',
   
'django.contrib.contenttypes',
   
'django.contrib.sessions',
   
'django.contrib.messages',
   
'django.contrib.staticfiles',
   
'student',
]

将新建的models同步到数据库:(请使用mysql6以上版本)

在项目目录下执行命令:

python manage.py  makemigrations

python manage.py  migrate

python+django搭建web项目

 

数据库中创建如上表;

 

附录:

字段

1、models.AutoField  自增列= int(11)

  如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。

2、models.CharField  字符串字段

  必须 max_length 参数

3.models.DateField  日期类型 date

  对于参数,auto_now =True则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。

4.models.DateTimeField  日期类型 datetime

  同DateField的参数

5.models.EmailField  字符串类型(正则表达式邮箱)=varchar

  对字符串进行正则表达式

6.models.FloatField  浮点类型= double

7.models.IntegerField  整形

8.models.SmallIntegerField  数字

  数据库中的字段有:tinyint、smallint、int、bigint

9、models.TextField  字符串=longtext

10、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]

11、models.URLField  字符串,地址正则表达式

12、models.BinaryField  二进制

13、models.ImageField图片

14、models.FilePathField文件

 

参数

1、null=True

  数据库中字段是否可以为空

2、blank=True

  django的Admin中添加数据时是否可允许空值

 

3、primary_key =False

  主键,对AutoField设置主键后,就会代替原来的自增 id 列

4、auto_now 和 auto_now_add

  auto_now 自动创建---无论添加或修改,都是当前操作的时间

  auto_now_add 自动创建---永远是创建时的时间

5、choices

GENDER_CHOICE =(

(u'M', u'Male'),

(u'F', u'Female'),

)

gender = models.CharField(max_length=2,choices = GENDER_CHOICE)

6、max_length

7、default  默认值

8、verbose_name  Admin中字段的显示名称

9、name|db_column  数据库中的字段名称

10、unique=True  不允许重复

11、db_index =True  数据库索引

12、editable=True  在Admin里是否可编辑

相关文章: