Django安装步骤(pycharm)
1.创建Django项目
db没有显示红色x说明创建成功了
2.安装插件
界面左下角有一个Terminal,点开就是一个命令行控制台,可以输入命令
查看Django版本信息,可以看出pycharm创建Django安装的是2.1.1的版本
2.1.安装Django1.11.12版本
目前支持比较好的为1.11.12,所以可以安装1.11.12(安装过程中会自动卸载掉2.1.1版本)
2.2安装Pymysql插件
接下来安装pymysql驱动包(用于连接数据库)
(venv) D:\Django\db>pip install pymysql
Collecting pymysql
Using cached https://files.pythonhosted.org/packages/a7/7d/682c4a7da195a678047c8f1c51bb7682aaedee1d
ca7547883c3993ca9282/PyMySQL-0.9.2-py2.py3-none-any.whl
Collecting cryptography (from pymysql)
Using cached https://files.pythonhosted.org/packages/f1/01/a144ec664d3f9ae5837bd72c4d11bdd2d8d40331
8898e4092457e8af9272/cryptography-2.3.1-cp36-cp36m-win_amd64.whl
Collecting cffi!=1.11.3,>=1.7 (from cryptography->pymysql)
Using cached https://files.pythonhosted.org/packages/2f/85/a9184548ad4261916d08a50d9e272bf6f93c54f3
735878fbfc9335efd94b/cffi-1.11.5-cp36-cp36m-win_amd64.whl
Collecting idna>=2.1 (from cryptography->pymysql)
Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab0
5a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting six>=1.4.1 (from cryptography->pymysql)
Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43
ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting asn1crypto>=0.21.0 (from cryptography->pymysql)
Using cached https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab
5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl
Collecting pycparser (from cffi!=1.11.3,>=1.7->cryptography->pymysql)
Using cached https://files.pythonhosted.org/packages/8c/2d/aad7f16146f4197a11f8e91fb81df177adcc2073
d36a17b1491fd09df6ed/pycparser-2.18.tar.gz
Installing collected packages: pycparser, cffi, idna, six, asn1crypto, cryptography, pymysql
Running setup.py install for pycparser ... done
Successfully installed asn1crypto-0.24.0 cffi-1.11.5 cryptography-2.3.1 idna-2.7 pycparser-2.18 pymys
ql-0.9.2 six-1.11.0
查看版本信息
3.配置Django基本流程
3.1.导入pymysql包
在Django的db项目名称下的__init__.py下添加
import pymysql #导入pymysql包,里面的所有功能便可以使用了,不需要单独一个个导入pymysql下的功能模块了
pymysql.install_as_MySQLdb() #当成mysqldb使用,没有这个就会使用pymysql的方式,这个主要是便于之前2.x版本用习惯了mysqldb的人使用(3.x版本后无法使用mysqldb)
3.2创建app
Terminal控制台敲命令
python manage.py startapp db_operate
创建完成后,会在左边多出一个目录db_operate(自己创建时的命名),里面就是用来做Django各种操作的
3.3注册APP
进入settings.py,找到一下配置,添加'db_opeate',用于注册创建的app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'db_operate'
]
4.修改urls.py文件
from django.contrib import admin
# from django.urls import path Django2.1.1版本的导入方式
from django.conf.urls import url
urlpatterns = [
# path('admin/', admin.site.urls), Django2.1.1版本的导入方式
url('admin/', admin.site.urls),
]
4.配置静态网页
4.1创建目录static
这个static目录里面用于存放子目录如css、js、img这些内容
4.2.配置static添加信息
在settings.py中配置static静态页面信息,作用是便于Django项目运行是调用该目录下的文件
4.3.static下添加内容
4.4.创建index.html网页文件
这个文件需要在templates下创建,这个目录在创建项目的时候自动创建的,项目运行时,会找到这个目录下的网页文件进行识别
5.配置数据库
5.1连接数据库
#settings.py文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'demo',
'USER':'root',
'PASSWORD':'root'
}
}
5.2定义Movies类(也就是列名、字典键)
from django.db import models
class Movies(models.Model):
name=models.CharField(max_length=64)
category=models.CharField(max_length=64)
date=models.CharField(max_length=64)
class Meta:
db_table="t_movies"
5.3创建表
makemigrations detail
migrate detail
5.4创建函数方法(也就是进行增删改查操作)
from django.shortcuts import render
from detail.models import Movies
def add(request):
if request.method=="GET":
return render(request, 'addmovies.html')
elif request.method=="POST":
movies=Movies()
movies.name=request.POST.get("name")
movies.category=request.POST.get("category")
movies.date=request.POST.get("date")
movies.save()
# return select(request)
return redirect(to= reverse('movielist')) #重定向方式
def select(request):
movies=Movies.objects.all() #字典
return render(request,'movielist.html',context={'movies':movies})
5.5设置路由(调用函数至网页文件)
from django.contrib import admin
from django.conf.urls import url
from detail import views
urlpatterns = [
url('admin/', admin.site.urls),
url('addmovies/',views.add),
url('movielist/',views.select,name='movielist') #重定向方式
#url('movielist/',views.select)
]
5.6网页文件
添加记录的页面
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8000/addmovies/" method="POST">
请输入电影名称:<input type="text" name="name"><br>
请输入电影类型:<input type="text" name="category"><br>
请输入时间:<input type="text" name="date"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
查询记录的页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>movie list</title>
</head>
<body>
<table border="1" cellspacing="0">
<tr>
<th>name</th>
<th>category</th>
<th>date</th>
</tr>
{% for movie in movies %}
<tr>
<td>{{ movie.name }}</td>
<td>{{ movie.category }}</td>
<td>{{ movie.date }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
5.7查看效果
添加页面
提交后跳转到电影列表页面
查看数据库