原文连接css
开发环境:
python: 3.7.3 下载地址:www.python.org/downloads/
pip: pip3
Django: 2.2 下载地址: www.djangoproject.com/download/
PyCharm: 2017.2 下载地址:www.jetbrains.com/pycharm/dow…html
1.Python: Python发源于八十年代后期。开发者是Centrum Wiskunde & Informatica的Guido van Rossum,这是位于荷兰阿姆斯特丹科学园区的一个数学和计算机科学研究中心。以后Van Rossum一直是Python开发颇有影响的人物。事实上,社区成员给了他一个荣誉称号:终生仁慈独裁者(BDFL)。python
2.web框架介绍 web框架的概念就像建房子,地基、支撑柱、大梁的骨架还有其余沙石、地板等等材料已经有了, 剩下的就是靠你本身组装起来。犹如积木同样。 mysql
Django: Python表明性web框架, 遵循MMVC架构模式的开源框架。 它的名字来自Django Reinhardt,一个法国做曲家和吉他演奏家,不少人认为他是历史上最伟大的吉他演奏家。位于堪萨斯洲的Lawrence城的Lawrence Journal-World报社有两位程序员,Adrian Holovaty和Simon Willison,他们在2003的时候开发出了Django,用于给报纸开发web程序。程序员
其余框架:tornado、flask、webpyweb
Python的和Pycharm的安装忽略,安装比较简单。sql
Mac终端下:数据库
$ pip3 install django # 或 pip3 install django==2.2
复制代码
Windows是在cmd里面,命令相同。django
打开Pycharm,欢迎页create project,而后
flask
PS:建立项目也可使用命令这里不作介绍.
django-admin createproject DjangoQuick
django-admin startapp quick
复制代码
Pycharm菜单栏
python3 manage.py runserver
将会在浏览器看到
打开quick目录下的views.py,输入一下内容
from django.shortcuts import render
from django.http import HttpResponse # 新添加
# Create your views here.
# 新添加
def index(request):
return HttpResponse('success')
复制代码
打开DjangoQuick下的urls.py,修改以下:
from django.contrib import admin
from django.urls import path
from quick.views import index # 导入包
urlpatterns = [
path('admin/', admin.site.urls),
path('', index) # 添加新的映射关系
]
复制代码
若是使用Pycharm的按钮启动项目,须要点击stop,从新运行,若是在terminal中运行项目,会自动重启。
而后刷新浏览器。
在quick目录新建templates目录
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这是一个html from:https://litets.com
</body>
</html>
复制代码
修改views.py文件
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
复制代码
重启服务器,刷新浏览器将会看到
这是一个html from:https://litets.com
复制代码
上面咱们已经成功输出了一段html代码,而且成功展现。你们都知html的美化须要依靠css,
css写法有两种:内联式和外联式。内联就不用多说,直接写在html同文件里面就能够了,如今咱们使用外联文件改怎么办呢?
在quick目录下新建static/css/style.css文件。
.desc {
color: red;
}
复制代码
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
<div class="desc">
这是一个html from:https://litets.com
</div>
</body>
</html>
复制代码
刷新浏览器,将会看到字变成红色了。
修改index.html文件
<div class="desc">
这是一个html from:https://litets.com
</div>
<!--一下是新添加-->
<form action="/" method="post">
{% csrf_token %}
用户名: <input type="text" name="username" placeholder="请输入用户名"> <br>
密码: <input type="password" name="password" placeholder="请输入密码"> <br>
<input type="submit" value="提交">
</form>
<!--users来自view中的context-->
{% if users %}
<table border="1px">
<tr>
<td>序号</td>
<td>用户名</td>
<td>密码</td>
</tr>
{% for user in users %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ user.username }}</td>
<td>{{ user.password }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
复制代码
views.py修改
from django.shortcuts import render
def index(request):
# 判断是不是post请求
if request.method == 'POST':
# 获取到请求参数, username的写法,若是username不存在不会抛异常
# password 会抛异常
username = request.POST.get('username')
password = request.POST['password']
# 业务 需求:
users = []
for x in range(0,3):
users.append(
{'username': '%s-%d' % (username, x), 'password': '%s-%d' % (password, x)}
)
# 返回给用户 模版中使用到的users就是这里传递进去的
return render(request, template_name='index.html', context={
'users': users
})
return render(request, 'index.html')
复制代码
这样咱们就实现了一个基本的网站了,可是有一个问题,用户传递过来的数据只是单次有效,没法持久化。
一般一个网站应用到须要持久化数据,好比文件、数据库等。
咱们打开DjangoQuick目录下的setting.py找到DATEBASES
默认项目使用sqlite3最为数据库。还支持 MySQL, PostgreSQL等
'django.db.backends.sqlite3'
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.oracle'
复制代码
Mysql的设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test', # 数据库名称,
'HOST': 'localhost', # 主机地址
'USER': 'user', # 数据库用户
'PASSWORD': 'pwd', # 密码
'PORT': 3306 # mysql的端口默认3306
}
}
复制代码
这里咱们使用默认的sqlite3。
打开quick下的models.py
from django.db import models
class User(models.Model):
username = models.CharField(max_length=25)
password = models.CharField(max_length=18)
复制代码
咱们增长了两个字段username和password,Django默认支持orm。
同步数据库,在终端中执行
$ python3 manage.py makemigrations
复制代码
$ python3 manage.py migrate
复制代码
这样models的变更,当即同步到数据库中。
修改views.py
from django.shortcuts import render
from .models import User
def index(request):
# 判断是不是post请求
if request.method == 'POST':
# 获取到请求参数, username的写法,若是username不存在不会抛异常
# password 会抛异常
username = request.POST.get('username')
password = request.POST['password']
u = User(username=username, password=password)
u.save()
# 业务 需求:查询出全部数据
users = User.objects.all()
# 返回给用户
return render(request, template_name='index.html', context={
'users': users
})
复制代码
这样添加用户后就会持久报错了,即便关闭浏览器,从新访问数据也是存在的。
咱们查看db.sqlite3文件查看里面的数据