[2018-10-29] python开发个人资源共享网--第二天
[2018-10-29] python开发个人资源共享网--第二天
创建Django目录
startproject my_project
创建APP
startapp my_app
手动创建的文件夹
log 日志
media 用户上传下载
static 静态文件
配置数据库
找到DATABASES
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'testdjango', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } }
Django默认为我们提供了很多功能,但是这些功能的背后需要有一定的数据表来做支撑
生成Django默认的数据表
进入pycharm的Tools--Run manage.py Task...
执行:makemigrations 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动
migrate 生成数据表
运行项目
Run--Debug--选择自己创建的项目
默认访问地址:http://127.0.0.1:8000/
环境测试(留言板功能)
首先将写好的html、css等静态文件放到static文件夹下
配置url
from message.views import get_form urlpatterns = [ path('admin/', admin.site.urls), path('form/', get_form), ]
配置view(app下的views.py文件)
def get_form(request): return render(request, 'message_form.html')
TemplateDoesNotExist
在Django的setting,py文件中有一个TEMPLATES(指明了我们获取模板文件的处理类)
在DIRS指明目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取根目录
# 在TEMPLATES中加入
'DIRS': [os.path.join(BASE_DIR, 'templates')],
配置静态路径
在setting.py文件的 STATIC_URL = '/static/' 下面加上
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
项目配置流程
Model设计
新建的Model需要在setting中配置
在 INSTALLED_APPS下加入
'message',
ORM
编写Models.py
class UserMessage(models.Model):
object_id = models.CharField(max_length=50, default="", primary_key=True, verbose_name=u"主键")
name = models.CharField(max_length=20, null=True, blank=True, default="", verbose_name=u"用户名")
email = models.EmailField(verbose_name=u"邮箱")
address = models.CharField(max_length=100, verbose_name=u"联系地址")
message = models.CharField(max_length=500, verbose_name=u"留言信息")
class Meta:
verbose_name = u"用户留言信息"
如果有编码问题请在Model.py文件的上方加上
# _*_ coding:utf-8 _*_
通过Task执行
makemigrations messages
然后会创建一个 0001_initial.py 文件
再执行
migrate message
查询数据库中的记录
views.py
# 查询数据
def get_form(request): all_message = UserMessage.objects.all() for message in all_message: print(message.name) return render(request, 'message_form.html')
# 插入数据
def get_form(request): user_message = UserMessage() # 实例化对象 user_message.name = "陈林2" user_message.email = "[email protected]" user_message.address = "广东" user_message.message = "信息" user_message.object_id = "2" user_message.save() return render(request, 'message_form.html')
form表单内必须加
{% csrf_token %}
接收表单POST过来的数据添加到数据库
# 通过POST接收到的数据添加到数据库
def get_form(request): if request.method == "POST": name = request.POST.get('name', '') email = request.POST.get('email', '') address = request.POST.get('address', '') message = request.POST.get('message', '') user_message = UserMessage() # 实例化对象 user_message.name = name user_message.email = email user_message.address = address user_message.message = message user_message.object_id = '3' user_message.save() return render(request, 'message_form.html')
# 删除数据
def get_form(request): all_message = UserMessage.objects.filter(name='陈林', address='广州白云') # all_message.delete() for message in all_message: message.delete() print(message.name) return render(request, 'message_form.html')