Home >  > 网站开发(六)财务网开发

网站开发(六)财务网开发

0

既然用现有的源码无法搭建,那就自己写吧。
一、环境搭配
这个不多说了,和以前一样。按这里操作,一直到可以显示django首页就可以了。

二、django-allauth同时实现本地和第三方认证
1.安装django-allauth
pip install django-allauth

2.修改配置文件setting.py

AUTHENTICATION_BACKENDS = (
    # Django 后台可独立于 allauth 登录
    'django.contrib.auth.backends.ModelBackend',

    # 配置 allauth 独有的认证方法,如 email 登录
    'allauth.account.auth_backends.AuthenticationBackend',
)


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'zanhuapp',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    
    # 可添加需要的第三方登录
    'allauth.socialaccount.providers.github',
    'allauth.socialaccount.providers.weibo',
]

# 设置站点
SITE_ID = 1

# 登录成功后重定向地址
LOGIN_REDIRECT_URL = '/article/article-list'

注意,站点设置和django.contrib.sites也必须加上,不然会报错。

File "H:\web\caiwu\caiwu\lib\site-packages\django\db\models\base.py", line 95,
in __new__
"INSTALLED_APPS." % (module, name)
RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an ex
plicit app_label and isn't in an application in INSTALLED_APPS.

3.修改url.py
修改根目录的url.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('allauth.urls')),
]

4.迁移数据
python manage.py migrate

5.测试效果
输入http://127.0.0.1:8000/accounts/login/,就可以看到登陆页面了。

参考资料:
https://www.jianshu.com/p/8989be98fd6d

6.美化模板
模板文件是保存在虚拟环境下的,路径是:env\Lib\site-packages\allauth\templates\account\login.html,如果你直接修改,部署到服务器上面的时候又没有了。所以最好在项目中创建一个完全相同的路径。

三、设定数据库
1.修改models.py
需要先安装下面几个库,安装完之后记得在settings.py的INSTALLED_APPS里面添加这几个库。
pip install django-markdownx
pip install django-taggit
python-slugify==3.0.1

2.修改数据库为MySql
由于之前用的是SQLite,不过后来我还是决定用MySql,所以又将数据库重新做了设定。数据库的设定可以看
这里

再做好数据库迁移,就可以进入后台查看了:

3.后台添加问题、答案的管理功能

from .models import Vote, Question, Answer

# Register your models here.
admin.site.register(Vote)
admin.site.register(Question)
admin.site.register(Answer)

刷新一下,就可以看到了:

4.修正Markdown的功能
上面虽然在后台显示了添加问题、答案的功能,可是点击“add”,却发现有出错信息:

The current path, markdownx/markdownify/, didn't match any of these.

在项目下(非app下)的url.py中,添加以下代码:

urlpatterns = [
    path('markdownx/', include('markdownx.urls')),
]

这时再看,添加问题的功能就正常了。

四、设定网站首页
由于我们没有设定好网站的页面,上面django-allauth登陆页面登陆后无法正常跳转,所以下面来设定。
1.设定url
在项目下(非app下)的url.py中,添加以下代码:

urlpatterns = [
    path('', include('zanhuapp.urls')),
]

2.在app文件夹下面(zanhuapp)建立一个urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('',views.index),
]

3.修改app文件夹下面的views.py

from django.shortcuts import render

def index(request):
    return render(request,'zanhuapp/index.html')

4.模板文件
在zanhu\zanhuapp\templates\zanhuapp下面建立index.html文件。
并在app项目下建立statics文件夹,存放静态文件。

5.修改settings.py文件
这个还一步要加,虽说Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件。

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

6.修改index.html文件的静态文件的地址

{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{%static 'css/bootstrap.css'%}" />
<link rel="stylesheet" type="text/css" href="{%static 'css/common.css'%}" />
<link rel="stylesheet" type="text/css" href="{%static 'css/style.css'%}" />
<link rel="stylesheet" type="text/css" href="{%static 'css/wangeditor.css'%}" />

5.测试效果

五、设定django-allauth的跳转
1.设定一个hello的跳转网址,并在views中设定它为转向hello.html
urlpatterns = [
path('hello/',views.hello),
]

2.在settings.py中设定跳转网址

LOGIN_REDIRECT_URL = '/hello/'

3.测试
这时注册成功后就可以正常跳转了。

而且可以登陆,可以登出。

一、代码部署
1.rcssmin出错
我用virtualenv建立虚拟环境,然后用pip install -r local.txt安装,rcssmin这个库无法安装报错。
然后改用pipenv安装,还是报这个错误。
在网上查询了一下,好像是因为我电脑中安装了anaconda的问题,后来使用这里的方法,合适下面的语句安装:

pip install rcssmin --install-option="--without-c-extensions"

再安装local.txt终于没有报错了。

2.环境变量
然后执行python manage.py runserver,出现下面的错误:

UserWarning: Error reading C:\Users\Kevin\wendawang\zanhu\.env - if you're not con
figuring your environment separately, check this.
"environment separately, check this." % env_file)
Traceback (most recent call last):
File "manage.py", line 30, in
execute_from_command_line(sys.argv)

解决:
twisted
解决了channels
ModuleNotFoundError: No module named 'win32api'
pip install pypiwin32
ModuleNotFoundError: No module named 'sorl'
pip install sorl-thumbnail
ModuleNotFoundError: No module named 'django_comments'
pip install django-contrib-comments
ModuleNotFoundError: No module named 'markdownx'
pip install django-markdownx
No module named 'taggit'
pip install django-taggit
django-haystack==2.8.1
elasticsearch==2.4.1

修改数据库连接
数据库migrate
报错:
File "C:\Users\Kevin\wendawang\zanhu_venv\lib\site-packages\django\template\ba
se.py", line 534, in invalid_block_tag
"or load this tag?" % (token.lineno, command)
Invalid block tag on line 29: 'cache'. Did you forget to register or load this
tag?

首页:
500 Internal Server Error

Exception inside application.
Daphne

在base.html中添中了{% load cache %}这段代码,终于看到了首页了。

python3 manage.py collectstati

还是不行:

二十、采集
初步代码:

import requests

payload = {"currentPage":"4",
		"nr":""	,
		"jg":""	,
		"zxjg":"",	
		"lykssj":""}

r = requests.post('https://xxx/nszx/onlinemessage/messagelist',data = payload)

jsons = r.json()
questions = jsons["pageSet"]
f = open("urls.txt")
lines = f.read()

for i in questions:
	if str(i["id"]) not in lines:
		open("urls.txt","a+").write(i["id"]+'\n')
		#这里发布文章
		# print(i["id"])
		# print(i["title"])
		# print(i["content"])
		print("post updated")		
	else:
		print("No post updated")

可以参考:https://bbs.xiuno.com/
https://github.com/lgphone/FakeV2EX

本文暂无标签

发表评论

*

*