[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')
]

 

 

项目配置流程

[2018-10-29] python开发个人资源共享网--第二天

 

 

 

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')

 

posted @ 2018-10-29 22:08 因为你是林颖 阅读(...) 评论(...) 编辑 收藏