python之Django的入门01------'hello word'

Django是一个开放源代码的Web应用框架,由Python写成。


Django是一个基于MVT构造的框架:模型(Model)、模板(Template)和视图(views)。


核心:解耦
目的:高内聚,低耦合

模型(Model),即数据存取层:处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

模板(Template),即业务逻辑层:处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
视图(View),即表现层:存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。




下面我们在Linux里,来使用pycharm和mysql数据库,来进行一次简单的数据库交互。

1.首先打开终端创建一个虚拟环境(虚拟环境的好处在于可以随意玩,并且可以只搭建自己用得到的部分)

创建一个python3虚拟环境语句:
(mkvirtualenv -p python3 虚拟环境的名字 )
mkvirtualenv -p python3 waterDB_django

'''
#退出虚拟环境命令:deactivate
#查看虚拟环境: workon
#开启虚拟环境命令:  workon waterDB_django
#删除虚拟环境: rmvirtualenv 虚拟环境的名字
'''

在虚拟环境里安装Django: pip install django==1.8.4




2.创建项目
创建项目的语句(最好在虚拟环境里安装):

django-admin startproject watercar

#watercar是项目名字
#下列是生成项目后自动配置成的:
#    manage.py            :项目管理文件,用来管理项目
#         watercar         :项目同名文件夹
#   ├── __init__.py      :表示我们这个文件可以被使用
#   ├── settings.py      :配置文件(数据库,邮箱等配置)
#   ├── urls.py          :项目的所有地址配置
#   └── wsgi.py          :就是我们Django 小型服务器入口





3.创建模块:
在(waterDB_django) python@ubuntu:~/Desktop/watercar$ 里创建

#(waterDB_django)是加载了创建的虚拟环境。
#python@ubuntu:~/Desktop/watercar$  是进入项目里面

创建模块语句:python manage.py startapp user

#user是模块名字
接下来在pycharm里打开watercar,在同名文件里的setting里在INSTALLED_APPS里添加一句:['user'] 

在pycharm里添完user后,模块与项目就产生了关联
可以运行服务器: python manage.py runserver (+端口名字)
打开地址,然后网页显示:it is worked

#端口名字不写的话,默认为端口:8000

4.连接数据库:
在pycharm里的项目同名文件夹下的setting里:

    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'waterDB',     #数据库名字,必须先在MySQL里新建一个waterDB数据库
        'USER':'root',        #权限
        'PASSWORD':'mysql',   #密码
        'PORT':3306,        #默认3306端口
        'HOST':'localhost'   #本地机
    }
}

5.用pycharm控制数据库-----建表:
在模块user的model里面:

class UserInfo(models.Model):
    user_name = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    email = models.CharField(max_length=20)
    phone = models.IntegerField()
    #这个时候数据库里表还没有生成,因为我们还没有把表迁移进去

6.安装pymysql 模块,并且在项目的同名文件夹下的————init.py文件下添加语句:

import pymysql

pymysql.install_as_MySQLdb()

7.迁移(建表):

生成迁移文件:
    python manage.py makemigrations
执行迁移文件:
    python manage.py migrate

这个时候把表迁移进去了,可以在终端打开MySQL数据库查看

#orm查询语句:
#	    1查询所有
#	    	UserInfo.objects.all()
#	    2查询指定对象
#	    	obj1 = UserInfo.objects.get(id=1)
#	    3查询指定字段
#	    	obj1 = user_name
#	    4修改指定字段的值
#	    	obj1.password = 54321	
#	    5查询老张所拥有的地址(关联):
#	    	obj1 =  UserInfo.objects.get(id=2)
#	    	obj1.useraddress_set.all()

8.进入Django自带的服务器:
在终端(waterDB_django) python@ubuntu:~/Desktop/watercar$ :

先创建超级管理员:
	python manage.py createsuperuser;
	
	#name=用户名  #用户名要记得,很重要
	#password=密码   #密码要记得,很重要
	
再运行服务器:
	python manage.py runserver;
	#运行服务器

然后在网页上输入它生成的地址,输入用户名和密码就进去了:

例如:http://127.0.0.1:8000/admin




9.配置Django后台更符合我们使用:

界面使用中文,在项目同名文件的setting下修改:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'


注册模块到admin:
在模块user的admin里:
from user.models import UserInfo

class UserInfoAdmin(admin.ModelAdmin):
    list_display = ['id','user_name','password','email','phone']

admin.site.register(UserInfo,UserInfoAdmin)

使用表userinfo时展示其名字:
在模块user的model文件,里面的userinfo类里,加一句:
def __str__(self):
    return self.user_name

10.使用urls:

10.1首先我们要把user的urls注册到项目的同名文件的urls.py文件里:
在urls里的urlpatterns里面添加:
	url(r'^',include('user.urls'))   #就是关联一下路径,在模块user里的urls文件,此时文件还没有创建,下面就来创建它



10.2创建user的urls.py文件:
在urls里面写上:
from django.conf.urls import include, url
from user import views

urlpatterns = [
    # 127.0.0.1/index
    url(r'^index$',views.index),
]


10.3根据url地址请求,创建对应的视图函数,注意点:必须有一个参数来接收请求,必须有抛出一个返回结果
在模块user的views里面写入:
from django.http import HttpResponse

# Create your views here.

def index(request):
    return HttpResponse('欢迎')

然后在网页上输入http://127.0.0.1:8000/index  就可以看到‘欢迎’了

猜你喜欢

转载自blog.csdn.net/sui_yi123/article/details/82501653