python django实战pycharm_Django实战入门简易教程

Hello各位小伙伴,很久没有在简书上更新文章了,好久不见

去年的这个时候由于暑假比较无聊,便在微信上跟着一群小伙伴自学了Python Web开发框架Django,但由于当时代码功力尚浅(现在也浅),学了一段时间后还是有些晕,便一直没有继续学下去

碰巧这段时间开始实习,由于工作需要不得不重新拾起Django。花了两天时间重新学习,并将这个过程记录下来,一方面是方便自己以后随时回顾防止遗忘,另一方面希望能够帮助初学者开始自己的第一个Django项目,OK Let's Go!

1. 安装Django环境

打开cmd命令提示符,输入命令

pip install django==2.0.7

讲解: pip install 语法

通过==2.0.7 指定Django的版本号,也可以直接使用pip install django默认安装Django官方的最新版本

安装完成后,在cmd界面中输入以下命令验证是否安装成功

c:\users\lenovo>python -m django --version

若终端中显示出版本号,则说明安装成功

2. 创建你的第一个Django项目

1. 新建项目

打开cmd命令提示符,输入以下命令

#进入工作目录

C:\Users\Lenovo>cd C:\Users\Lenovo\PycharmProjects

#使用django-admin命令新建项目

C:\Users\Lenovo\PycharmProjects>django-admin startproject

此时,工作目录下已经创建出了Django的相关文件

目录说明:

investigation: 项目的容器。

manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

investigation/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。

investigation/settings.py: 该 Django 项目的设置/配置。

investigation/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。

investigation/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目

2. 启动服务

#切换到我们创建的项目

cd investigation

#使用manage.py启动服务

C:\Users\Lenovo\PycharmProjects\investigation>python manage.py runserver

.......

Starting development server at http://127.0.0.1:8000/

Quit the server with CTRL-BREAK

3. 视图(view)与 URL配置

1. 创建view

在之前创建的 investigation 目录下的 investigation 目录新建一个 view.py 文件,并输入代码

from django.http import HttpResponse

def hello(request):

return HttpResponse("Hello world ! ")

该段代码的作用是,当view接收到rerquest请求后,返回一句“Hello world ! ”的提示语

2. 将视图绑定到URL

打开investigation 目录下的 investigation 目录中的url.py 文件,并输入代码(模板中已经存在部分代码,请根据实际情况补充)

from django.contrib import admin

from django.urls import path

from django.conf.urls import url

from investigation import view

urlpatterns = [

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

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

]

该段代码的作用是将先前创建好的视图(view)与URL进行绑定,当用户访问URL(http://127.0.0.1:8000)时,返回绑定好的视图函数

代码修改完成后重新启动Django服务,此时,访问http://127.0.0.1:8000即可看到网页端显示Hello World !

3. Django实战练习

这部分以在线表单为例,在Web端的表单中提交数据后,将数据保存到数据库中

1. 创建App

在investigation 目录下的 investigation 目录中打开cmd命令提示符,输入命令新建一个App

django-admin startapp myapp

此时,该目录下生成了一个新的文件夹myapp

讲解:Project和App的区别

一个Web项目可以理解为Project,比如我们创建了一个网站,在网站当中会有各种各样的功能、模块、业务。一个功能就可以是一个App,比如用户管理(User App)、文章管理(Article App)都是在一个Project当中不同的App。Project下面可以有很多Apps,Apps也可以属于不同的Project

2. 导入静态资源

在investigation目录的根下创建template目录,并将form.html和post.html文件复制到该目录中

在investigation目录的根下创建static文件夹

进入static文件夹中,创建css文件夹,并将style.css文件复制到该文件下

将下方代码复制粘贴到settings.py的最后

STATIC_URL = '/static/'

STATICFILES_DIRS = [

os.path.join(BASE_DIR,"static")

]

将以下代码填入settings.py第57行中括号中

os.path.join(BASE_DIR, 'templates')

讲解: django提供【django.contrib.staticfiles】来帮助你管理静态文件 静态文件包括:images, JavaScript, CSS 等 settings配置:STATIC_URL和STATICFILES_DIRS

3. 设计URL并编写views

打开App目录下(myapp目录)的views.py,将以下代码粘贴进去,定义一个视图函数

def showform(request):

return render(request, "form.html")

讲解:

该段代码定义了一个视图函数,当函数接收到request请求时,返回render函数,在本段代码中,即返回”form.html“页面

打开urls.py设计URL,将以下代码粘贴到该文件中

from django.contrib import admin

from django.urls import path

from django.conf.urls import url

from . import view

from investigation.myapp import views

urlpatterns = [

url(r'^$', view.hello),

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

]

保存编辑完成的代码,重新启动Django服务,若出现以下界面,则说明这一阶段部署成功

4. 提交并保存数据

在本机安装MySQL客户端,后期我们会将数据保存到MySQL数据库中

在本机安装Navicat For MySQL

新建数据库djangoPro

进入djangoPro中新建数据表userinfo,建表SQL语句如下

CREATE TABLE `userinfo` (

`qq_id` varchar(20) DEFAULT NULL,

`wx_id` varchar(20) DEFAULT NULL,

`stu_name` varchar(100) DEFAULT NULL,

`gender` varchar(1) DEFAULT NULL,

`age` int(3) DEFAULT NULL,

`major` varchar(30) DEFAULT NULL,

`hobby` varchar(100) DEFAULT NULL,

`python_level` varchar(10) DEFAULT NULL,

`is_new` varchar(100) DEFAULT NULL,

`has_book` varchar(100) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

使用pip命令安装pymysql

pip isntall pymysql

讲解:

pymysql 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用MySQLdb

打开investigation目录下的init.py文件,写入以下代码

import pymysql

pymysql.install_as_MySQLdb()

讲解:

由于兼容性问题,Django暂不支持直接使用pymysql,此步骤的代码是将Django默认的数据库连接库MySQLdb更换为pymysql

打开App目录下(myapp目录)的views.py,编写数据库链接函数connect_database()和数据存储函数savedata()

import pymysql

def connect_database():

mysql_conn = {

'host': 'localhost',

'port': 3306,

'user': 'root',

'password': 'password',

'db': 'djangoPro',

'charset': 'utf8'

}

db = pymysql.connect(**mysql_conn)

cursor = db.cursor()

return db

def savedata(qq_id, wx_id, stu_name,

gender, age, major, hobby,

python_level, is_new, book_info):

db = connect_database()

cursor = db.cursor()

cursor.execute("INSERT INTO userinfo VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",

(qq_id, wx_id, stu_name, gender, age,

major, hobby, python_level, is_new, book_info))

db.commit()

db.close()

在views.py里编写保存表单的函数saveform()

def saveform(request):

qq_id = request.POST['qq_id']

wx_id = request.POST['wx_id']

stu_name = request.POST['nick_name']

gender = request.POST['gender']

age = request.POST['age']

major = request.POST['major']

hobby = request.POST['hobby']

python_level = request.POST['python_level']

is_new = request.POST['is_new']

book_info = request.POST['book_info']

savedata(qq_id, wx_id, stu_name, gender, age, major, hobby, python_level, is_new, book_info)

return render(request, "post.html")

在urls.py中添加一条路由记录,绑定saveform的视图

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

保存相关代码,重新启动Django服务

此时,进入到数据库中,就能看到表单提交的数据了

流程讲解:

保存数据这部分的代码让人有些凌乱,我们来拆分一下程序实现的流程

当你在showform页面点击提交按钮的一瞬间,一条数据被POST到了我们的服务器

通过Firefox浏览器抓包,我们可以看到这条数据长这样

程序将这条数据作为参数(request)传递给views.py中的saveform()函数

Django提供了request.POST的方法获得post请求发出的数据,将表单中的数据逐一提取出来,并赋值给变量

数据提取出来后,调用savedata()函数,将数据写入数据库

数据存储成功

结束语

至此,Django实战入门简易教程就结束了,第一次写这么长的文章,写得不好还请多多指教

有些人看完可能要说了,Django提供了models.py,通过ORM存储数据更加简单,为什么还要用pymysql这么原始笨拙的方法

是产品经理逼我这样写的

Emmm.....不对!其实是我们产品经理用心良苦,他觉得对于初学者来说还是用最原始的办法会好一些,ORM虽方便,但是万一中途出现报错,初学者会无从下手(比如我),所以建议对Django框架有了一个大致的了解后,再去自行学习models.py的用法

Good Luck !

你可能感兴趣的:(python,django实战pycharm)